namespace LittleShop.Client.Models; public class Product { public Guid Id { get; set; } public string Name { get; set; } = string.Empty; public string? Description { get; set; } public decimal Price { get; set; } public decimal Weight { get; set; } public int WeightUnit { get; set; } public Guid CategoryId { get; set; } public string? CategoryName { get; set; } public bool IsActive { get; set; } public List Photos { get; set; } = new(); public List MultiBuys { get; set; } = new(); public List Variants { get; set; } = new(); public DateTime CreatedAt { get; set; } public DateTime UpdatedAt { get; set; } } public class ProductPhoto { public Guid Id { get; set; } public string Url { get; set; } = string.Empty; public string? AltText { get; set; } public int SortOrder { get; set; } } public class ProductMultiBuy { public Guid Id { get; set; } public Guid ProductId { get; set; } public string Name { get; set; } = string.Empty; public string? Description { get; set; } public int Quantity { get; set; } public decimal Price { get; set; } public decimal PricePerUnit { get; set; } public int SortOrder { get; set; } public bool IsActive { get; set; } } public class ProductVariant { public Guid Id { get; set; } public Guid ProductId { get; set; } public string Name { get; set; } = string.Empty; // e.g., "Red", "Blue", "Vanilla" public string VariantType { get; set; } = "Standard"; // e.g., "Color", "Flavor" public int SortOrder { get; set; } public int StockLevel { get; set; } public decimal? Weight { get; set; } // Optional: override product weight public int? WeightUnit { get; set; } // Optional: override product weight unit public decimal? Price { get; set; } // Optional: override product price (if null, uses product.Price) public bool IsActive { get; set; } }