ba6d74fe35
- Add GetUserPackageStatusQueryValidator for user package status validation. - Create ArchiveMessageCommand and ArchiveMessageCommandHandler for archiving public messages. - Implement ArchiveMessageCommandValidator to validate message ID. - Introduce PublishMessageCommand and PublishMessageCommandHandler for publishing messages. - Add PublishMessageCommandValidator for validating publish message requests. - Implement GetPublicMessageQuery and GetPublicMessageQueryHandler for retrieving public messages. - Create GetPublicMessageQueryValidator for validating public message requests. - Add ApplyDiscountToOrderCommand and ApplyDiscountToOrderCommandHandler for applying discounts to orders. - Implement ApplyDiscountToOrderCommandValidator for validating discount application requests. - Create UpdateOrderStatusCommand and UpdateOrderStatusCommandHandler for changing order statuses. - Implement UpdateOrderStatusCommandValidator for validating order status updates. - Add CalculateOrderPVQuery and CalculateOrderPVQueryHandler for calculating order PV. - Implement CalculateOrderPVQueryValidator for validating PV calculation requests. - Create GetOrdersByDateRangeQuery and GetOrdersByDateRangeQueryHandler for retrieving orders by date range. - Implement GetOrdersByDateRangeQueryValidator for validating date range queries. - Add PublicMessage entity to represent public messages in the system. - Implement PublicMessageService for handling public message operations via gRPC.
67 lines
1.9 KiB
C#
67 lines
1.9 KiB
C#
using CMSMicroservice.Application.Common.Models;
|
|
using CMSMicroservice.Domain.Enums;
|
|
|
|
namespace CMSMicroservice.Application.UserOrderCQ.Queries.GetOrdersByDateRange;
|
|
|
|
/// <summary>
|
|
/// دریافت سفارشات بر اساس بازه زمانی
|
|
/// </summary>
|
|
public record GetOrdersByDateRangeQuery : IRequest<GetOrdersByDateRangeResponseDto>
|
|
{
|
|
/// <summary>
|
|
/// تاریخ شروع (UTC)
|
|
/// </summary>
|
|
public DateTime StartDate { get; init; }
|
|
|
|
/// <summary>
|
|
/// تاریخ پایان (UTC)
|
|
/// </summary>
|
|
public DateTime EndDate { get; init; }
|
|
|
|
/// <summary>
|
|
/// فیلتر وضعیت تحویل (اختیاری)
|
|
/// </summary>
|
|
public DeliveryStatus? Status { get; init; }
|
|
|
|
/// <summary>
|
|
/// شناسه کاربر (اختیاری - برای فیلتر بر اساس کاربر)
|
|
/// </summary>
|
|
public long? UserId { get; init; }
|
|
|
|
/// <summary>
|
|
/// شماره صفحه
|
|
/// </summary>
|
|
public int PageIndex { get; init; } = 1;
|
|
|
|
/// <summary>
|
|
/// تعداد در صفحه
|
|
/// </summary>
|
|
public int PageSize { get; init; } = 20;
|
|
}
|
|
|
|
/// <summary>
|
|
/// پاسخ لیست سفارشات
|
|
/// </summary>
|
|
public class GetOrdersByDateRangeResponseDto
|
|
{
|
|
public MetaData MetaData { get; set; } = new();
|
|
public List<OrderSummaryDto> Orders { get; set; } = new();
|
|
}
|
|
|
|
/// <summary>
|
|
/// خلاصه اطلاعات سفارش
|
|
/// </summary>
|
|
public class OrderSummaryDto
|
|
{
|
|
public long Id { get; set; }
|
|
public long UserId { get; set; }
|
|
public string UserFullName { get; set; } = string.Empty;
|
|
public long Amount { get; set; }
|
|
public long DiscountedPrice { get; set; }
|
|
public DeliveryStatus Status { get; set; }
|
|
public DateTime Created { get; set; }
|
|
public DateTime? ShippedAt { get; set; }
|
|
public DateTime? DeliveredAt { get; set; }
|
|
public int ItemsCount { get; set; }
|
|
}
|