using System.ComponentModel.DataAnnotations; using LittleShop.Enums; namespace LittleShop.DTOs; public class OrderDto { public Guid Id { get; set; } public string IdentityReference { get; set; } = string.Empty; public OrderStatus Status { get; set; } public decimal TotalAmount { get; set; } public string Currency { get; set; } = "GBP"; public string? Notes { get; set; } public string? TrackingNumber { get; set; } public DateTime CreatedAt { get; set; } public DateTime? PaidAt { get; set; } public DateTime? ShippedAt { get; set; } public List OrderItems { get; set; } = new(); public List CryptoPayments { get; set; } = new(); } public class OrderItemDto { public Guid Id { get; set; } public Guid ProductId { get; set; } public string ProductName { get; set; } = string.Empty; public int Quantity { get; set; } public decimal UnitPrice { get; set; } public decimal TotalPrice { get; set; } } public class CreateOrderDto { [Required] public string IdentityReference { get; set; } = string.Empty; [Required] public List OrderItems { get; set; } = new(); public string? Notes { get; set; } } public class CreateOrderItemDto { [Required] public Guid ProductId { get; set; } [Range(1, int.MaxValue)] public int Quantity { get; set; } } public class UpdateOrderStatusDto { public OrderStatus Status { get; set; } public string? TrackingNumber { get; set; } public string? Notes { get; set; } }