using MediatR; using TakeoutSaaS.Application.App.Orders.Dto; using TakeoutSaaS.Domain.Orders.Enums; using TakeoutSaaS.Domain.Payments.Enums; namespace TakeoutSaaS.Application.App.Orders.Commands; /// /// 更新订单命令。 /// public sealed record UpdateOrderCommand : IRequest { /// /// 订单 ID。 /// public long OrderId { get; init; } /// /// 订单号。 /// public string OrderNo { get; init; } = string.Empty; /// /// 门店 ID。 /// public long StoreId { get; init; } /// /// 渠道。 /// public OrderChannel Channel { get; init; } = OrderChannel.MiniProgram; /// /// 履约方式。 /// public DeliveryType DeliveryType { get; init; } = DeliveryType.DineIn; /// /// 状态。 /// public OrderStatus Status { get; init; } = OrderStatus.PendingPayment; /// /// 支付状态。 /// public PaymentStatus PaymentStatus { get; init; } = PaymentStatus.Unpaid; /// /// 顾客姓名。 /// public string? CustomerName { get; init; } /// /// 顾客手机号。 /// public string? CustomerPhone { get; init; } /// /// 桌号。 /// public string? TableNo { get; init; } /// /// 排队号。 /// public string? QueueNumber { get; init; } /// /// 预约 ID。 /// public long? ReservationId { get; init; } /// /// 商品金额。 /// public decimal ItemsAmount { get; init; } /// /// 优惠金额。 /// public decimal DiscountAmount { get; init; } /// /// 应付金额。 /// public decimal PayableAmount { get; init; } /// /// 实付金额。 /// public decimal PaidAmount { get; init; } /// /// 支付时间。 /// public DateTime? PaidAt { get; init; } /// /// 完成时间。 /// public DateTime? FinishedAt { get; init; } /// /// 取消时间。 /// public DateTime? CancelledAt { get; init; } /// /// 取消原因。 /// public string? CancelReason { get; init; } /// /// 备注。 /// public string? Remark { get; init; } }