Files
FrontOffice.BFF/src/Protobufs/FrontOffice.BFF.Products.Protobuf/Protos/products.proto
2025-11-28 11:00:59 +03:30

141 lines
3.0 KiB
Protocol Buffer

syntax = "proto3";
package products;
import "google/protobuf/empty.proto";
import "google/protobuf/wrappers.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option csharp_namespace = "FrontOffice.BFF.Products.Protobuf.Protos.Products";
service ProductsContract
{
rpc GetProducts(GetProductsRequest) returns (GetProductsResponse){
option (google.api.http) = {
get: "/GetProducts"
};
};
rpc GetAllProductsByFilter(GetAllProductsByFilterRequest) returns (GetAllProductsByFilterResponse){
option (google.api.http) = {
get: "/GetAllProductsByFilter"
};
};
}
message GetProductsRequest
{
int64 id = 1;
}
message GetProductsResponse
{
int64 id = 1;
string title = 2;
string description = 3;
string short_infomation = 4;
string full_information = 5;
int64 price = 6;
int32 discount = 7;
int32 rate = 8;
string image_path = 9;
string thumbnail_path = 10;
int32 sale_count = 11;
int32 view_count = 12;
int32 remaining_count = 13;
repeated ProductGalleryItem gallery = 14;
repeated ProductCategoryPath categories = 15;
}
message GetAllProductsByFilterRequest
{
PaginationState pagination_state = 1;
google.protobuf.StringValue sort_by = 2;
GetAllProductsByFilterFilter filter = 3;
}
message GetAllProductsByFilterFilter
{
google.protobuf.Int64Value id = 1;
google.protobuf.StringValue title = 2;
google.protobuf.StringValue description = 3;
google.protobuf.StringValue short_infomation = 4;
google.protobuf.StringValue full_information = 5;
google.protobuf.Int64Value price = 6;
google.protobuf.Int32Value discount = 7;
google.protobuf.Int32Value rate = 8;
google.protobuf.Int64Value category_id = 9;
}
message GetAllProductsByFilterResponse
{
MetaData meta_data = 1;
repeated GetAllProductsByFilterResponseModel models = 2;
}
message GetAllProductsByFilterResponseModel
{
int64 id = 1;
string title = 2;
string description = 3;
string short_infomation = 4;
string full_information = 5;
int64 price = 6;
int32 discount = 7;
int32 rate = 8;
string image_path = 9;
string thumbnail_path = 10;
int32 sale_count = 11;
int32 view_count = 12;
int32 remaining_count = 13;
repeated ProductCategoryPath categories = 14;
}
message ProductGalleryItem
{
int64 product_gallery_id = 1;
int64 product_image_id = 2;
string title = 3;
string image_path = 4;
string image_thumbnail_path = 5;
}
message ProductCategoryPath
{
int64 category_id = 1;
string title = 2;
repeated CategoryNode path = 3;
}
message CategoryNode
{
int64 id = 1;
string title = 2;
google.protobuf.Int64Value parent_id = 3;
}
message PaginationState
{
int32 page_number = 1;
int32 page_size = 2;
}
message MetaData
{
int64 current_page = 1;
int64 total_page = 2;
int64 page_size = 3;
int64 total_count = 4;
bool has_previous = 5;
bool has_next = 6;
}
message DecimalValue
{
int64 units = 1;
sfixed32 nanos = 2;
}