using System.ComponentModel.DataAnnotations; namespace PowderCoating.Web.ViewModels.PowderCatalog; public class PowderCatalogFormViewModel { public int Id { get; set; } [Required] [StringLength(120)] public string VendorName { get; set; } = string.Empty; [Required] [StringLength(100)] [Display(Name = "SKU")] public string Sku { get; set; } = string.Empty; [Required] [StringLength(160)] [Display(Name = "Color Name")] public string ColorName { get; set; } = string.Empty; [StringLength(4000)] public string? Description { get; set; } [Range(0, 999999)] [Display(Name = "Unit Price")] public decimal UnitPrice { get; set; } [Url] [Display(Name = "Image URL")] public string? ImageUrl { get; set; } [Url] [Display(Name = "SDS URL")] public string? SdsUrl { get; set; } [Url] [Display(Name = "TDS URL")] public string? TdsUrl { get; set; } [Url] [Display(Name = "Application Guide URL")] public string? ApplicationGuideUrl { get; set; } [Url] [Display(Name = "Product URL")] public string? ProductUrl { get; set; } [Range(0, 1000)] [Display(Name = "Cure Temperature (F)")] public decimal? CureTemperatureF { get; set; } [Range(0, 1000)] [Display(Name = "Cure Time (Minutes)")] public int? CureTimeMinutes { get; set; } [StringLength(100)] public string? Finish { get; set; } [StringLength(300)] [Display(Name = "Color Families")] public string? ColorFamilies { get; set; } [Display(Name = "Requires Clear Coat")] public bool? RequiresClearCoat { get; set; } [Range(0, 10000)] [Display(Name = "Coverage (Sq Ft / Lb)")] public decimal? CoverageSqFtPerLb { get; set; } [Range(0, 100)] [Display(Name = "Transfer Efficiency (%)")] public decimal? TransferEfficiency { get; set; } [Display(Name = "Discontinued")] public bool IsDiscontinued { get; set; } [Display(Name = "User Contributed")] public bool IsUserContributed { get; set; } public DateTime CreatedAt { get; set; } public DateTime? UpdatedAt { get; set; } public DateTime? LastSyncedAt { get; set; } }