syntax = "proto3"; package shopingcart; 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.ShopingCart.Protobuf.Protos.ShopingCart"; service ShopingCartContract { rpc AddNewUserCart(AddNewUserCartRequest) returns (google.protobuf.Empty){ option (google.api.http) = { post: "/AddNewUserCart" body: "*" }; }; rpc GetAllUserCart(google.protobuf.Empty) returns (GetAllUserCartResponse){ option (google.api.http) = { get: "/GetAllUserCart" }; }; rpc UpdateUserCart(UpdateUserCartRequest) returns (google.protobuf.Empty){ option (google.api.http) = { post: "/UpdateUserCart" body: "*" }; }; } message AddNewUserCartRequest { int64 product_id = 1; int32 count = 2; } message GetAllUserCartResponse { 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; } message UpdateUserCartRequest { int64 user_cart_id = 1; int32 count = 2; } 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; }