feat: Implement Discount Sales Report Query and Handler
Build and Deploy / build (push) Successful in 2m33s
Build and Deploy / build (push) Successful in 2m33s
- Added GetDiscountSalesReportQuery and GetDiscountSalesReportQueryHandler to fetch discount sales reports. - Introduced DiscountSalesReportDto, SalesSummaryDto, and PeriodSalesDto for structured report data. feat: Add Discount Product Image Management - Created AddDiscountProductImageCommand and AddDiscountProductImageCommandHandler for image uploads. - Implemented DeleteDiscountProductImageCommand and DeleteDiscountProductImageCommandHandler for image deletion. - Added ReorderDiscountProductImagesCommand and ReorderDiscountProductImagesCommandHandler for image reordering. - Developed UpdateDiscountProductImageCommand and UpdateDiscountProductImageCommandHandler for image updates. feat: Enhance Product Tag Management - Introduced DeleteProductTagCommand and DeleteProductTagCommandHandler for tag deletion. - Added UpdateProductTagCommand and UpdateProductTagCommandHandler for updating product tags. - Implemented GetAllProductTagsQuery and GetAllProductTagsQueryHandler for fetching all product tags. - Created GetProductTagQuery and GetProductTagQueryHandler for retrieving specific product tags. feat: Develop Web API Services for Discount and Product Management - Implemented DiscountCategoryService for managing discount categories. - Created DiscountOrderService for handling discount orders and related queries. - Developed DiscountProductService for managing discount products and their images. - Added DiscountShoppingCartService for managing shopping cart operations. - Implemented ProductTagService for managing product tags and their associations. - Created TagService for managing tags and their related operations.
This commit is contained in:
+2
-2
@@ -4,7 +4,7 @@
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>0.0.3</Version>
|
||||
<Version>0.0.4</Version>
|
||||
<DebugType>None</DebugType>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
||||
@@ -23,7 +23,7 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Protobuf Include="Protos\discountorder.proto" ProtoRoot="Protos\" GrpcServices="Client" AdditionalImportDirs="..\BackOffice.BFF.Common.Protobuf\Protos"/>
|
||||
<Protobuf Include="Protos\discountorder.proto" ProtoRoot="Protos\" GrpcServices="Both" AdditionalImportDirs="..\BackOffice.BFF.Common.Protobuf\Protos"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -40,6 +40,20 @@ service DiscountOrderContract
|
||||
get: "/GetUserOrders"
|
||||
};
|
||||
};
|
||||
|
||||
// Admin: Get All Discount Orders with filters
|
||||
rpc GetAllDiscountOrders(GetAllDiscountOrdersRequest) returns (GetAllDiscountOrdersResponse){
|
||||
option (google.api.http) = {
|
||||
get: "/GetAllDiscountOrders"
|
||||
};
|
||||
};
|
||||
|
||||
// Admin: Get Sales Report
|
||||
rpc GetDiscountSalesReport(GetDiscountSalesReportRequest) returns (GetDiscountSalesReportResponse){
|
||||
option (google.api.http) = {
|
||||
get: "/GetDiscountSalesReport"
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
// Place Order (Initial Step - Create Order)
|
||||
@@ -175,3 +189,118 @@ message OrderSummaryDto
|
||||
int32 items_count = 9;
|
||||
google.protobuf.Timestamp created = 10;
|
||||
}
|
||||
|
||||
// ===== Admin: Get All Discount Orders =====
|
||||
|
||||
message GetAllDiscountOrdersRequest
|
||||
{
|
||||
google.protobuf.Int64Value user_id = 1;
|
||||
google.protobuf.Int32Value payment_status = 2;
|
||||
google.protobuf.Int32Value delivery_status = 3;
|
||||
google.protobuf.StringValue user_mobile = 4;
|
||||
google.protobuf.StringValue tracking_code = 5;
|
||||
google.protobuf.Timestamp from_date = 6;
|
||||
google.protobuf.Timestamp to_date = 7;
|
||||
google.protobuf.Int64Value min_amount = 8;
|
||||
google.protobuf.Int64Value max_amount = 9;
|
||||
int32 page_number = 10;
|
||||
int32 page_size = 11;
|
||||
}
|
||||
|
||||
message GetAllDiscountOrdersResponse
|
||||
{
|
||||
messages.MetaData meta_data = 1;
|
||||
repeated AdminOrderDto models = 2;
|
||||
}
|
||||
|
||||
message AdminOrderDto
|
||||
{
|
||||
int64 id = 1;
|
||||
int64 user_id = 2;
|
||||
string user_full_name = 3;
|
||||
string user_mobile = 4;
|
||||
int64 total_amount = 5;
|
||||
int64 discount_balance_used = 6;
|
||||
int64 gateway_amount_paid = 7;
|
||||
int64 vat_amount = 8;
|
||||
PaymentStatus payment_status = 9;
|
||||
google.protobuf.Timestamp payment_date = 10;
|
||||
DeliveryStatus delivery_status = 11;
|
||||
google.protobuf.Timestamp delivery_date = 12;
|
||||
google.protobuf.StringValue shipping_address = 13;
|
||||
google.protobuf.StringValue receiver_name = 14;
|
||||
google.protobuf.StringValue receiver_mobile = 15;
|
||||
google.protobuf.StringValue tracking_code = 16;
|
||||
google.protobuf.StringValue admin_note = 17;
|
||||
google.protobuf.Timestamp created = 18;
|
||||
google.protobuf.Timestamp last_modified = 19;
|
||||
int32 items_count = 20;
|
||||
}
|
||||
|
||||
enum PaymentStatus
|
||||
{
|
||||
PAYMENT_PENDING = 0;
|
||||
PAYMENT_COMPLETED = 1;
|
||||
PAYMENT_FAILED = 2;
|
||||
PAYMENT_REFUNDED = 3;
|
||||
}
|
||||
|
||||
// ===== Sales Report Messages =====
|
||||
|
||||
enum SalesReportType
|
||||
{
|
||||
REPORT_SUMMARY = 0;
|
||||
REPORT_DAILY = 1;
|
||||
REPORT_WEEKLY = 2;
|
||||
REPORT_MONTHLY = 3;
|
||||
}
|
||||
|
||||
message GetDiscountSalesReportRequest
|
||||
{
|
||||
google.protobuf.Timestamp from_date = 1;
|
||||
google.protobuf.Timestamp to_date = 2;
|
||||
SalesReportType report_type = 3;
|
||||
}
|
||||
|
||||
message GetDiscountSalesReportResponse
|
||||
{
|
||||
SalesSummary summary = 1;
|
||||
repeated SalesPeriodDto periods = 2;
|
||||
repeated TopSellingProductDto top_products = 3;
|
||||
}
|
||||
|
||||
message SalesSummary
|
||||
{
|
||||
int32 total_orders = 1;
|
||||
int32 completed_orders = 2;
|
||||
int32 pending_orders = 3;
|
||||
int32 cancelled_orders = 4;
|
||||
int64 total_sales_amount = 5;
|
||||
int64 total_discount_used = 6;
|
||||
int64 total_gateway_paid = 7;
|
||||
int64 total_vat_amount = 8;
|
||||
int64 average_order_value = 9;
|
||||
int32 unique_customers = 10;
|
||||
int32 total_products_sold = 11;
|
||||
}
|
||||
|
||||
message SalesPeriodDto
|
||||
{
|
||||
string period_label = 1;
|
||||
google.protobuf.Timestamp period_start = 2;
|
||||
google.protobuf.Timestamp period_end = 3;
|
||||
int32 orders_count = 4;
|
||||
int64 total_amount = 5;
|
||||
int64 discount_used = 6;
|
||||
int64 gateway_paid = 7;
|
||||
}
|
||||
|
||||
message TopSellingProductDto
|
||||
{
|
||||
int64 product_id = 1;
|
||||
string product_title = 2;
|
||||
google.protobuf.StringValue image_path = 3;
|
||||
int32 quantity_sold = 4;
|
||||
int64 total_revenue = 5;
|
||||
int32 orders_count = 6;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user