121 lines
2.5 KiB
Protocol Buffer
121 lines
2.5 KiB
Protocol Buffer
|
|
syntax = "proto3";
|
||
|
|
|
||
|
|
package discountshoppingcart;
|
||
|
|
|
||
|
|
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 = "BackOffice.BFF.DiscountShoppingCart.Protobuf.Protos.DiscountShoppingCart";
|
||
|
|
|
||
|
|
service DiscountShoppingCartContract
|
||
|
|
{
|
||
|
|
rpc AddToCart(AddToCartRequest) returns (AddToCartResponse){
|
||
|
|
option (google.api.http) = {
|
||
|
|
post: "/AddToCart"
|
||
|
|
body: "*"
|
||
|
|
};
|
||
|
|
};
|
||
|
|
rpc RemoveFromCart(RemoveFromCartRequest) returns (RemoveFromCartResponse){
|
||
|
|
option (google.api.http) = {
|
||
|
|
delete: "/RemoveFromCart"
|
||
|
|
body: "*"
|
||
|
|
};
|
||
|
|
};
|
||
|
|
rpc UpdateCartItemCount(UpdateCartItemCountRequest) returns (UpdateCartItemCountResponse){
|
||
|
|
option (google.api.http) = {
|
||
|
|
put: "/UpdateCartItemCount"
|
||
|
|
body: "*"
|
||
|
|
};
|
||
|
|
};
|
||
|
|
rpc GetUserCart(GetUserCartRequest) returns (GetUserCartResponse){
|
||
|
|
option (google.api.http) = {
|
||
|
|
get: "/GetUserCart"
|
||
|
|
};
|
||
|
|
};
|
||
|
|
rpc ClearCart(ClearCartRequest) returns (google.protobuf.Empty){
|
||
|
|
option (google.api.http) = {
|
||
|
|
delete: "/ClearCart"
|
||
|
|
body: "*"
|
||
|
|
};
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
// Add to Cart
|
||
|
|
message AddToCartRequest
|
||
|
|
{
|
||
|
|
int64 user_id = 1;
|
||
|
|
int64 product_id = 2;
|
||
|
|
int32 count = 3;
|
||
|
|
}
|
||
|
|
|
||
|
|
message AddToCartResponse
|
||
|
|
{
|
||
|
|
bool success = 1;
|
||
|
|
string message = 2;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Remove from Cart
|
||
|
|
message RemoveFromCartRequest
|
||
|
|
{
|
||
|
|
int64 user_id = 1;
|
||
|
|
int64 product_id = 2;
|
||
|
|
}
|
||
|
|
|
||
|
|
message RemoveFromCartResponse
|
||
|
|
{
|
||
|
|
bool success = 1;
|
||
|
|
string message = 2;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Update Cart Item Count
|
||
|
|
message UpdateCartItemCountRequest
|
||
|
|
{
|
||
|
|
int64 user_id = 1;
|
||
|
|
int64 product_id = 2;
|
||
|
|
int32 new_count = 3;
|
||
|
|
}
|
||
|
|
|
||
|
|
message UpdateCartItemCountResponse
|
||
|
|
{
|
||
|
|
bool success = 1;
|
||
|
|
string message = 2;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Get User Cart
|
||
|
|
message GetUserCartRequest
|
||
|
|
{
|
||
|
|
int64 user_id = 1;
|
||
|
|
}
|
||
|
|
|
||
|
|
message GetUserCartResponse
|
||
|
|
{
|
||
|
|
repeated CartItemDto items = 1;
|
||
|
|
int64 total_price = 2;
|
||
|
|
int64 total_discount_amount = 3;
|
||
|
|
int64 final_price = 4;
|
||
|
|
}
|
||
|
|
|
||
|
|
message CartItemDto
|
||
|
|
{
|
||
|
|
int64 product_id = 1;
|
||
|
|
string product_title = 2;
|
||
|
|
string product_image_path = 3;
|
||
|
|
int64 unit_price = 4;
|
||
|
|
int32 max_discount_percent = 5;
|
||
|
|
int32 count = 6;
|
||
|
|
int64 total_price = 7;
|
||
|
|
int64 discount_amount = 8;
|
||
|
|
int64 final_price = 9;
|
||
|
|
int32 product_remaining_count = 10;
|
||
|
|
google.protobuf.Timestamp created = 11;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Clear Cart
|
||
|
|
message ClearCartRequest
|
||
|
|
{
|
||
|
|
int64 user_id = 1;
|
||
|
|
}
|