40da1bd8df
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 9m33s
- Added Phone property to UserAddressDto for capturing the user's mobile number. - Updated GetOrderByIdQueryHandler to include user mobile in order details. - Enhanced GetCustomerOrderQueryHandler and GetCustomerOrderResponseDto to include PostalCode and UserMobile. - Modified userorder.proto to add postal_code and user_mobile fields in GetUserOrderResponse. - Bumped Protobuf project version to reflect the addition of new features.
549 lines
15 KiB
Protocol Buffer
549 lines
15 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package userorder;
|
|
|
|
import "public_messages.proto";
|
|
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 = "CMSMicroservice.Protobuf.Protos.UserOrder";
|
|
|
|
service UserOrderContract
|
|
{
|
|
rpc CreateNewUserOrder(CreateNewUserOrderRequest) returns (CreateNewUserOrderResponse){
|
|
option (google.api.http) = {
|
|
post: "/CreateNewUserOrder"
|
|
body: "*"
|
|
};
|
|
};
|
|
rpc UpdateUserOrder(UpdateUserOrderRequest) returns (google.protobuf.Empty){
|
|
option (google.api.http) = {
|
|
put: "/UpdateUserOrder"
|
|
body: "*"
|
|
};
|
|
};
|
|
rpc DeleteUserOrder(DeleteUserOrderRequest) returns (google.protobuf.Empty){
|
|
option (google.api.http) = {
|
|
delete: "/DeleteUserOrder"
|
|
body: "*"
|
|
};
|
|
};
|
|
rpc GetUserOrder(GetUserOrderRequest) returns (GetUserOrderResponse){
|
|
option (google.api.http) = {
|
|
get: "/GetUserOrder"
|
|
|
|
};
|
|
};
|
|
rpc GetAllUserOrderByFilter(GetAllUserOrderByFilterRequest) returns (GetAllUserOrderByFilterResponse){
|
|
option (google.api.http) = {
|
|
get: "/GetAllUserOrderByFilter"
|
|
|
|
};
|
|
};
|
|
rpc SubmitShopBuyOrder(SubmitShopBuyOrderRequest) returns (SubmitShopBuyOrderResponse){
|
|
option (google.api.http) = {
|
|
post: "/SubmitShopBuyOrder"
|
|
body: "*"
|
|
};
|
|
};
|
|
rpc CancelOrder(CancelOrderRequest) returns (CancelOrderResponse){
|
|
option (google.api.http) = {
|
|
post: "/CancelOrder"
|
|
body: "*"
|
|
};
|
|
};
|
|
|
|
// Order Management
|
|
rpc UpdateOrderStatus(UpdateOrderStatusRequest) returns (UpdateOrderStatusResponse){
|
|
option (google.api.http) = {
|
|
post: "/UpdateOrderStatus"
|
|
body: "*"
|
|
};
|
|
};
|
|
rpc GetOrdersByDateRange(GetOrdersByDateRangeRequest) returns (GetOrdersByDateRangeResponse){
|
|
option (google.api.http) = {
|
|
get: "/GetOrdersByDateRange"
|
|
};
|
|
};
|
|
rpc ApplyDiscountToOrder(ApplyDiscountToOrderRequest) returns (ApplyDiscountToOrderResponse){
|
|
option (google.api.http) = {
|
|
post: "/ApplyDiscountToOrder"
|
|
body: "*"
|
|
};
|
|
};
|
|
rpc CalculateOrderPV(CalculateOrderPVRequest) returns (CalculateOrderPVResponse){
|
|
option (google.api.http) = {
|
|
get: "/CalculateOrderPV"
|
|
};
|
|
};
|
|
|
|
// ============= Customer-specific Methods =============
|
|
|
|
rpc CreateNewOrderForCustomer(CreateNewUserOrderRequest) returns (CreateNewUserOrderResponse){
|
|
option (google.api.http) = {
|
|
post: "/Customer/CreateOrder"
|
|
body: "*"
|
|
};
|
|
};
|
|
rpc SubmitOrderForCustomer(SubmitShopBuyOrderRequest) returns (SubmitShopBuyOrderResponse){
|
|
option (google.api.http) = {
|
|
post: "/Customer/SubmitOrder"
|
|
body: "*"
|
|
};
|
|
};
|
|
rpc GetCustomerOrders(GetAllUserOrderByFilterRequest) returns (GetAllUserOrderByFilterResponse){
|
|
option (google.api.http) = {
|
|
get: "/Customer/GetOrders"
|
|
|
|
};
|
|
};
|
|
rpc GetCustomerOrder(GetUserOrderRequest) returns (GetUserOrderResponse){
|
|
option (google.api.http) = {
|
|
get: "/Customer/GetOrder"
|
|
|
|
};
|
|
};
|
|
rpc CustomerCancelOrder(CustomerCancelOrderRequest) returns (CustomerCancelOrderResponse){
|
|
option (google.api.http) = {
|
|
post: "/Customer/CancelOrder"
|
|
body: "*"
|
|
};
|
|
};
|
|
rpc GetCustomerOrderHistory(GetCustomerOrderHistoryRequest) returns (GetCustomerOrderHistoryResponse){
|
|
option (google.api.http) = {
|
|
get: "/Customer/GetOrderHistory"
|
|
};
|
|
};
|
|
rpc CustomerTrackOrder(CustomerTrackOrderRequest) returns (CustomerTrackOrderResponse){
|
|
option (google.api.http) = {
|
|
get: "/Customer/TrackOrder"
|
|
};
|
|
};
|
|
rpc CustomerReorderPreviousOrder(CustomerReorderRequest) returns (CustomerReorderResponse){
|
|
option (google.api.http) = {
|
|
post: "/Customer/Reorder"
|
|
body: "*"
|
|
};
|
|
};
|
|
|
|
rpc GetVATRate(google.protobuf.Empty) returns (GetVATRateResponse){
|
|
option (google.api.http) = {
|
|
get: "/Customer/GetVATRate"
|
|
};
|
|
};
|
|
}
|
|
message CreateNewUserOrderRequest
|
|
{
|
|
int64 amount = 1;
|
|
int64 package_id = 2;
|
|
google.protobuf.Int64Value transaction_id = 3;
|
|
oneof PaymentStatus_item
|
|
{
|
|
messages.PaymentStatus payment_status = 4;
|
|
}
|
|
google.protobuf.Timestamp payment_date = 5;
|
|
int64 user_id = 6;
|
|
int64 user_address_id = 7;
|
|
oneof PaymentMethod_item
|
|
{
|
|
messages.PaymentMethod payment_method = 8;
|
|
}
|
|
}
|
|
message CreateNewUserOrderResponse
|
|
{
|
|
int64 id = 1;
|
|
}
|
|
message UpdateUserOrderRequest
|
|
{
|
|
int64 id = 1;
|
|
google.protobuf.Int64Value amount = 2;
|
|
google.protobuf.Int64Value package_id = 3;
|
|
google.protobuf.Int64Value transaction_id = 4;
|
|
oneof PaymentStatus_item
|
|
{
|
|
messages.PaymentStatus payment_status = 5;
|
|
}
|
|
google.protobuf.Timestamp payment_date = 6;
|
|
google.protobuf.Int64Value user_id = 7;
|
|
google.protobuf.Int64Value user_address_id = 8;
|
|
oneof PaymentMethod_item
|
|
{
|
|
messages.PaymentMethod payment_method = 9;
|
|
}
|
|
// وضعیت ارسال و اطلاعات پستی
|
|
oneof DeliveryStatus_item
|
|
{
|
|
messages.DeliveryStatus delivery_status = 10;
|
|
}
|
|
google.protobuf.StringValue tracking_code = 11;
|
|
google.protobuf.StringValue delivery_description = 12;
|
|
}
|
|
message DeleteUserOrderRequest
|
|
{
|
|
int64 id = 1;
|
|
}
|
|
message GetUserOrderRequest
|
|
{
|
|
int64 id = 1;
|
|
}
|
|
message GetUserOrderResponse
|
|
{
|
|
int64 id = 1;
|
|
int64 amount = 2;
|
|
int64 package_id = 3;
|
|
google.protobuf.Int64Value transaction_id = 4;
|
|
oneof PaymentStatus_item
|
|
{
|
|
messages.PaymentStatus payment_status = 5;
|
|
}
|
|
google.protobuf.Timestamp payment_date = 6;
|
|
int64 user_id = 7;
|
|
int64 user_address_id = 8;
|
|
oneof PaymentMethod_item
|
|
{
|
|
messages.PaymentMethod payment_method = 9;
|
|
}
|
|
google.protobuf.StringValue user_address_text = 10;
|
|
repeated GetUserOrderResponseFactorDetail factor_details = 11;
|
|
// وضعیت ارسال و اطلاعات پستی
|
|
oneof DeliveryStatus_item
|
|
{
|
|
messages.DeliveryStatus delivery_status = 12;
|
|
}
|
|
google.protobuf.StringValue tracking_code = 13;
|
|
google.protobuf.StringValue delivery_description = 14;
|
|
// نام کامل و کدملی کاربر
|
|
google.protobuf.StringValue user_full_name = 15;
|
|
google.protobuf.StringValue user_national_code = 16;
|
|
// اطلاعات مالیات بر ارزش افزوده
|
|
OrderVATInfo vat_info = 17;
|
|
// اطلاعات پستی برای برچسب کارتن
|
|
google.protobuf.StringValue postal_code = 18;
|
|
google.protobuf.StringValue user_mobile = 19;
|
|
}
|
|
|
|
// اطلاعات مالیات بر ارزش افزوده
|
|
message OrderVATInfo
|
|
{
|
|
double vat_rate = 1; // نرخ مالیات (مثلاً 0.09)
|
|
int64 base_amount = 2; // مبلغ پایه (قبل از مالیات)
|
|
int64 vat_amount = 3; // مبلغ مالیات
|
|
int64 total_amount = 4; // مبلغ کل (پایه + مالیات)
|
|
bool is_paid = 5; // آیا پرداخت شده
|
|
}
|
|
|
|
message GetUserOrderResponseFactorDetail
|
|
{
|
|
int64 product_id = 1;
|
|
string product_title = 2;
|
|
google.protobuf.StringValue product_thumbnail_path = 3;
|
|
google.protobuf.Int64Value unit_price = 4;
|
|
google.protobuf.Int32Value count = 5;
|
|
google.protobuf.Int64Value unit_discount_price = 6;
|
|
}
|
|
message GetAllUserOrderByFilterRequest
|
|
{
|
|
messages.PaginationState pagination_state = 1;
|
|
google.protobuf.StringValue sort_by = 2;
|
|
GetAllUserOrderByFilterFilter filter = 3;
|
|
}
|
|
message GetAllUserOrderByFilterFilter
|
|
{
|
|
google.protobuf.Int64Value id = 1;
|
|
google.protobuf.Int64Value amount = 2;
|
|
google.protobuf.Int64Value package_id = 3;
|
|
google.protobuf.Int64Value transaction_id = 4;
|
|
oneof PaymentStatus_item
|
|
{
|
|
messages.PaymentStatus payment_status = 5;
|
|
}
|
|
google.protobuf.Timestamp payment_date = 6;
|
|
google.protobuf.Int64Value user_id = 7;
|
|
google.protobuf.Int64Value user_address_id = 8;
|
|
oneof PaymentMethod_item
|
|
{
|
|
messages.PaymentMethod payment_method = 9;
|
|
}
|
|
// فیلتر وضعیت ارسال
|
|
oneof DeliveryStatus_item
|
|
{
|
|
messages.DeliveryStatus delivery_status = 10;
|
|
}
|
|
// فیلتر بازه تاریخ
|
|
google.protobuf.Timestamp from_date = 11;
|
|
google.protobuf.Timestamp to_date = 12;
|
|
}
|
|
message GetAllUserOrderByFilterResponse
|
|
{
|
|
messages.MetaData meta_data = 1;
|
|
repeated GetAllUserOrderByFilterResponseModel models = 2;
|
|
}
|
|
message GetAllUserOrderByFilterResponseModel
|
|
{
|
|
int64 id = 1;
|
|
int64 amount = 2;
|
|
int64 package_id = 3;
|
|
google.protobuf.Int64Value transaction_id = 4;
|
|
oneof PaymentStatus_item
|
|
{
|
|
messages.PaymentStatus payment_status = 5;
|
|
}
|
|
google.protobuf.Timestamp payment_date = 6;
|
|
int64 user_id = 7;
|
|
int64 user_address_id = 8;
|
|
oneof PaymentMethod_item
|
|
{
|
|
messages.PaymentMethod payment_method = 9;
|
|
}
|
|
google.protobuf.StringValue user_address_text = 10;
|
|
repeated GetAllUserOrderByFilterResponseModelFactorDetail factor_details = 11;
|
|
// وضعیت ارسال و اطلاعات پستی
|
|
oneof DeliveryStatus_item
|
|
{
|
|
messages.DeliveryStatus delivery_status = 12;
|
|
}
|
|
google.protobuf.StringValue tracking_code = 13;
|
|
google.protobuf.StringValue delivery_description = 14;
|
|
// نام کامل و کدملی کاربر
|
|
google.protobuf.StringValue user_full_name = 15;
|
|
google.protobuf.StringValue user_national_code = 16;
|
|
// مبلغ و درصد مالیات بر ارزش افزوده
|
|
int64 vat_amount = 17;
|
|
double vat_percentage = 18;
|
|
}
|
|
message GetAllUserOrderByFilterResponseModelFactorDetail
|
|
{
|
|
int64 product_id = 1;
|
|
string product_title = 2;
|
|
google.protobuf.StringValue product_thumbnail_path = 3;
|
|
google.protobuf.Int64Value unit_price = 4;
|
|
google.protobuf.Int32Value count = 5;
|
|
google.protobuf.Int64Value unit_discount_price = 6;
|
|
}
|
|
message SubmitShopBuyOrderRequest
|
|
{
|
|
int64 total_amount = 1;
|
|
int64 user_id = 2;
|
|
}
|
|
message SubmitShopBuyOrderResponse
|
|
{
|
|
int64 id = 1;
|
|
}
|
|
|
|
// CancelOrder Messages
|
|
message CancelOrderRequest
|
|
{
|
|
int64 order_id = 1;
|
|
string cancel_reason = 2;
|
|
bool refund_payment = 3;
|
|
}
|
|
|
|
message CancelOrderResponse
|
|
{
|
|
int64 order_id = 1;
|
|
messages.DeliveryStatus status = 2;
|
|
string message = 3;
|
|
bool refund_processed = 4;
|
|
}
|
|
|
|
// Order Management Messages
|
|
message UpdateOrderStatusRequest
|
|
{
|
|
int64 order_id = 1;
|
|
int32 new_status = 2;
|
|
}
|
|
|
|
message UpdateOrderStatusResponse
|
|
{
|
|
bool success = 1;
|
|
string message = 2;
|
|
int32 old_status = 3;
|
|
int32 new_status = 4;
|
|
}
|
|
|
|
message GetOrdersByDateRangeRequest
|
|
{
|
|
google.protobuf.Timestamp start_date = 1;
|
|
google.protobuf.Timestamp end_date = 2;
|
|
google.protobuf.Int32Value status = 3;
|
|
google.protobuf.Int64Value user_id = 4;
|
|
int32 page_number = 5;
|
|
int32 page_size = 6;
|
|
}
|
|
|
|
message GetOrdersByDateRangeResponse
|
|
{
|
|
messages.MetaData meta_data = 1;
|
|
repeated OrderSummaryDto orders = 2;
|
|
}
|
|
|
|
message OrderSummaryDto
|
|
{
|
|
int64 order_id = 1;
|
|
string order_number = 2;
|
|
int64 user_id = 3;
|
|
string user_full_name = 4;
|
|
int64 total_amount = 5;
|
|
int32 status = 6;
|
|
string status_name = 7;
|
|
int32 items_count = 8;
|
|
google.protobuf.Timestamp created_at = 9;
|
|
}
|
|
|
|
message ApplyDiscountToOrderRequest
|
|
{
|
|
int64 order_id = 1;
|
|
int64 discount_amount = 2;
|
|
string reason = 3;
|
|
}
|
|
|
|
message ApplyDiscountToOrderResponse
|
|
{
|
|
bool success = 1;
|
|
string message = 2;
|
|
int64 original_amount = 3;
|
|
int64 discount_amount = 4;
|
|
int64 final_amount = 5;
|
|
}
|
|
|
|
// ============= Customer Message Types =============
|
|
|
|
message CustomerCancelOrderRequest
|
|
{
|
|
int64 order_id = 1;
|
|
string cancellation_reason = 2;
|
|
}
|
|
|
|
message CustomerCancelOrderResponse
|
|
{
|
|
bool success = 1;
|
|
string message = 2;
|
|
int64 refund_amount = 3;
|
|
string refund_transaction_id = 4;
|
|
}
|
|
|
|
message GetCustomerOrderHistoryRequest
|
|
{
|
|
int64 user_id = 1;
|
|
messages.PaginationState pagination_state = 2;
|
|
OrderStatusEnum status_filter = 3;
|
|
google.protobuf.Timestamp from_date = 4;
|
|
google.protobuf.Timestamp to_date = 5;
|
|
}
|
|
|
|
message GetCustomerOrderHistoryResponse
|
|
{
|
|
messages.MetaData meta_data = 1;
|
|
repeated CustomerOrderModel orders = 2;
|
|
}
|
|
|
|
message CustomerTrackOrderRequest
|
|
{
|
|
int64 order_id = 1;
|
|
}
|
|
|
|
message CustomerTrackOrderResponse
|
|
{
|
|
CustomerOrderModel order = 1;
|
|
repeated OrderStatusHistory status_history = 2;
|
|
DeliveryTrackingInfo delivery_info = 3;
|
|
}
|
|
|
|
message CustomerReorderRequest
|
|
{
|
|
int64 original_order_id = 1;
|
|
bool use_current_prices = 2;
|
|
}
|
|
|
|
message CustomerReorderResponse
|
|
{
|
|
bool success = 1;
|
|
string message = 2;
|
|
int64 new_order_id = 3;
|
|
int64 total_amount = 4;
|
|
}
|
|
|
|
message CustomerOrderModel
|
|
{
|
|
int64 id = 1;
|
|
int64 amount = 2;
|
|
int64 package_id = 3;
|
|
string package_name = 4;
|
|
OrderStatusEnum status = 5;
|
|
string status_message = 6;
|
|
google.protobuf.Timestamp order_date = 7;
|
|
google.protobuf.Timestamp delivery_date = 8;
|
|
string tracking_code = 9;
|
|
int32 items_count = 10;
|
|
bool can_cancel = 11;
|
|
bool can_reorder = 12;
|
|
}
|
|
|
|
message OrderStatusHistory
|
|
{
|
|
OrderStatusEnum status = 1;
|
|
string status_message = 2;
|
|
google.protobuf.Timestamp changed_at = 3;
|
|
string changed_by = 4;
|
|
}
|
|
|
|
message DeliveryTrackingInfo
|
|
{
|
|
string tracking_code = 1;
|
|
string courier_name = 2;
|
|
string estimated_delivery = 3;
|
|
string current_location = 4;
|
|
repeated DeliveryStep delivery_steps = 5;
|
|
}
|
|
|
|
message DeliveryStep
|
|
{
|
|
string step_name = 1;
|
|
string step_description = 2;
|
|
google.protobuf.Timestamp step_time = 3;
|
|
bool is_completed = 4;
|
|
}
|
|
|
|
enum OrderStatusEnum
|
|
{
|
|
ORDER_STATUS_PENDING = 0;
|
|
ORDER_STATUS_CONFIRMED = 1;
|
|
ORDER_STATUS_PROCESSING = 2;
|
|
ORDER_STATUS_SHIPPED = 3;
|
|
ORDER_STATUS_DELIVERED = 4;
|
|
ORDER_STATUS_CANCELLED = 5;
|
|
ORDER_STATUS_REFUNDED = 6;
|
|
}
|
|
|
|
message CalculateOrderPVRequest
|
|
{
|
|
int64 order_id = 1;
|
|
}
|
|
|
|
message CalculateOrderPVResponse
|
|
{
|
|
int64 order_id = 1;
|
|
int64 total_pv = 2;
|
|
repeated ProductPVDto products = 3;
|
|
}
|
|
|
|
message ProductPVDto
|
|
{
|
|
int64 product_id = 1;
|
|
string product_title = 2;
|
|
int32 quantity = 3;
|
|
int64 unit_pv = 4;
|
|
int64 total_pv = 5;
|
|
}
|
|
|
|
// GetVATRate - for frontend customer display
|
|
message GetVATRateResponse
|
|
{
|
|
double vat_rate = 1;
|
|
int32 vat_percentage = 2;
|
|
bool is_enabled = 3;
|
|
}
|