using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace StockMaster.Models { [Table("product", Schema = "stock_management")] public class Product { [Key] [Column("product_id")] public int ProductId { get; set; } [Required(ErrorMessage = "Product name is required")] [MaxLength(100)] [Column("name")] public string Name { get; set; } [Column("description")] public string Description { get; set; } [Required(ErrorMessage = "SKU is required")] [MaxLength(50)] [Column("sku")] public string Sku { get; set; } [Required(ErrorMessage = "Unit price is required")] [Range(0.01, double.MaxValue, ErrorMessage = "Unit price must be greater than 0")] [Column("unit_price")] public decimal UnitPrice { get; set; } [Column("reorder_level")] public int ReorderLevel { get; set; } = 10; [Column("category_id")] public int? CategoryId { get; set; } [ForeignKey("CategoryId")] public Category Category { get; set; } [Column("supplier_id")] public int? SupplierId { get; set; } [ForeignKey("SupplierId")] public Supplier Supplier { get; set; } [Column("is_active")] public bool IsActive { get; set; } = true; [Column("created_at")] public DateTime CreatedAt { get; set; } = DateTime.Now; } }