181 lines
4.5 KiB
Protocol Buffer
181 lines
4.5 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package configuration;
|
|
|
|
import "public_messages.proto";
|
|
import "google/protobuf/empty.proto";
|
|
import "google/protobuf/wrappers.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
import "google/api/annotations.proto";
|
|
|
|
option csharp_namespace = "CMSMicroservice.Protobuf.Protos.Configuration";
|
|
|
|
service ConfigurationContract
|
|
{
|
|
rpc CreateOrUpdateConfiguration(CreateOrUpdateConfigurationRequest) returns (google.protobuf.Empty){
|
|
option (google.api.http) = {
|
|
post: "/Configuration/CreateOrUpdate"
|
|
body: "*"
|
|
};
|
|
};
|
|
rpc DeactivateConfiguration(DeactivateConfigurationRequest) returns (google.protobuf.Empty){
|
|
option (google.api.http) = {
|
|
post: "/Configuration/Deactivate"
|
|
body: "*"
|
|
};
|
|
};
|
|
rpc GetConfigurationByKey(GetConfigurationByKeyRequest) returns (GetConfigurationByKeyResponse){
|
|
option (google.api.http) = {
|
|
get: "/Configuration/GetByKey"
|
|
};
|
|
};
|
|
rpc GetAllConfigurations(GetAllConfigurationsRequest) returns (GetAllConfigurationsResponse){
|
|
option (google.api.http) = {
|
|
get: "/Configuration/GetAll"
|
|
};
|
|
};
|
|
rpc GetConfigurationHistory(GetConfigurationHistoryRequest) returns (GetConfigurationHistoryResponse){
|
|
option (google.api.http) = {
|
|
get: "/Configuration/GetHistory"
|
|
};
|
|
};
|
|
|
|
// Customer-facing APIs
|
|
rpc GetClubConfiguration(google.protobuf.Empty) returns (GetClubConfigurationResponse){
|
|
option (google.api.http) = {
|
|
get: "/Configuration/Customer/Club"
|
|
};
|
|
};
|
|
|
|
rpc GetClubFeatures(google.protobuf.Empty) returns (GetClubFeaturesResponse){
|
|
option (google.api.http) = {
|
|
get: "/Configuration/Customer/ClubFeatures"
|
|
};
|
|
};
|
|
}
|
|
|
|
// CreateOrUpdate Command
|
|
message CreateOrUpdateConfigurationRequest
|
|
{
|
|
string key = 1;
|
|
string value = 2;
|
|
google.protobuf.StringValue description = 3;
|
|
int32 scope = 4; // ConfigurationScope enum: System=0, Network=1, Club=2, Commission=3
|
|
}
|
|
|
|
// Deactivate Command
|
|
message DeactivateConfigurationRequest
|
|
{
|
|
string key = 1;
|
|
google.protobuf.StringValue reason = 2;
|
|
}
|
|
|
|
// GetByKey Query
|
|
message GetConfigurationByKeyRequest
|
|
{
|
|
int32 scope = 1;
|
|
string key = 2;
|
|
}
|
|
|
|
message GetConfigurationByKeyResponse
|
|
{
|
|
int64 id = 1;
|
|
string key = 2;
|
|
string value = 3;
|
|
string description = 4;
|
|
int32 scope = 5;
|
|
bool is_active = 6;
|
|
google.protobuf.Timestamp created = 7;
|
|
google.protobuf.Timestamp last_modified = 8;
|
|
}
|
|
|
|
// GetAll Query
|
|
message GetAllConfigurationsRequest
|
|
{
|
|
messages.PaginationState pagination_state = 1;
|
|
google.protobuf.StringValue sort_by = 2;
|
|
GetAllConfigurationsFilter filter = 3;
|
|
}
|
|
|
|
message GetAllConfigurationsFilter
|
|
{
|
|
google.protobuf.Int32Value scope = 1;
|
|
google.protobuf.StringValue key_contains = 2;
|
|
google.protobuf.BoolValue is_active = 3;
|
|
}
|
|
|
|
message GetAllConfigurationsResponse
|
|
{
|
|
messages.MetaData meta_data = 1;
|
|
repeated ConfigurationModel models = 2;
|
|
}
|
|
|
|
message ConfigurationModel
|
|
{
|
|
int64 id = 1;
|
|
string key = 2;
|
|
string value = 3;
|
|
string description = 4;
|
|
int32 scope = 5;
|
|
bool is_active = 6;
|
|
google.protobuf.Timestamp created = 7;
|
|
}
|
|
|
|
// GetHistory Query
|
|
message GetConfigurationHistoryRequest
|
|
{
|
|
google.protobuf.Int64Value configuration_id = 1;
|
|
google.protobuf.StringValue key = 2;
|
|
int32 page_index = 3;
|
|
int32 page_size = 4;
|
|
}
|
|
|
|
message GetConfigurationHistoryResponse
|
|
{
|
|
messages.MetaData meta_data = 1;
|
|
repeated ConfigurationHistoryModel models = 2;
|
|
}
|
|
|
|
message ConfigurationHistoryModel
|
|
{
|
|
int64 id = 1;
|
|
int64 configuration_id = 2;
|
|
string key = 3;
|
|
string old_value = 4;
|
|
string new_value = 5;
|
|
string old_description = 6;
|
|
string new_description = 7;
|
|
int32 old_scope = 8;
|
|
int32 new_scope = 9;
|
|
string performed_by = 10;
|
|
string reason = 11;
|
|
google.protobuf.Timestamp created = 12;
|
|
}
|
|
|
|
// ============ Customer APIs ============
|
|
|
|
// GetClubConfiguration - for frontend customer display
|
|
message GetClubConfigurationResponse
|
|
{
|
|
int64 activation_fee = 1;
|
|
int64 membership_gift_value = 2;
|
|
}
|
|
|
|
// GetClubFeatures - for frontend customer display
|
|
message GetClubFeaturesResponse
|
|
{
|
|
repeated ClubFeatureModel features = 1;
|
|
}
|
|
|
|
message ClubFeatureModel
|
|
{
|
|
int64 id = 1;
|
|
string title = 2;
|
|
string description = 3;
|
|
bool is_enabled = 4;
|
|
int32 display_order = 5;
|
|
google.protobuf.Timestamp granted_at = 6;
|
|
google.protobuf.Timestamp created_at = 7;
|
|
string notes = 8;
|
|
}
|