namespace LiteCharms.Features.ShoppingCarts.Commands; public class UpdateShoppingCartItemCommand : IRequest { public Guid ShoppingCartId { get; set; } public Guid ShoppingCartItemId { get; set; } public int Quantity { get; set; } private UpdateShoppingCartItemCommand(Guid shoppingCartId, Guid shoppingCartItemId, int quantity = 1) { ShoppingCartId = shoppingCartId; ShoppingCartItemId = shoppingCartItemId; Quantity = quantity; } public static UpdateShoppingCartItemCommand Create(Guid shoppingCartId, Guid shoppingCartItemId, int quantity = 1) { if (shoppingCartId == Guid.Empty) throw new ArgumentException($"Shopping cart ID is required", nameof(shoppingCartId)); if (shoppingCartItemId == Guid.Empty) throw new ArgumentException($"Shopping cart item is required", nameof(shoppingCartItemId)); if (quantity <= 0) throw new ArgumentException($"Quantity must be at least 1", nameof(quantity)); return new(shoppingCartId, shoppingCartItemId, quantity); } }