// EN: Command to create a new order.
// VI: Command tạo order mới.
using MediatR;
namespace OrderService.API.Application.Commands;
///
/// EN: Command to create a new order with validation through strategies.
/// VI: Command tạo order mới với validation qua strategies.
///
public record CreateOrderCommand(
Guid ShopId,
Guid? CustomerId,
List Items,
decimal? DiscountAmount = null,
string? DiscountType = null,
string? DiscountReference = null,
Guid? TableId = null
) : IRequest;
///
/// EN: Order item request.
/// VI: Yêu cầu order item.
///
public record OrderItemRequest(
Guid ProductId,
string ProductName,
string ProductType,
int Quantity,
decimal UnitPrice,
bool TrackInventory = true
);
///
/// EN: Result of create order command.
/// VI: Kết quả command tạo order.
///
public record CreateOrderResult(
Guid OrderId,
decimal TotalAmount,
string Status
);