using System.ComponentModel.DataAnnotations; using PowderCoating.Core.Enums; namespace PowderCoating.Core.Entities; /// /// A named blast setup for a company (e.g. "Siphon Cabinet", "Pressure Pot #1", "Blast Room"). /// Companies can have multiple setups; one is flagged as the default used for AI quoting when /// the user doesn't pick a specific one. /// public class CompanyBlastSetup : BaseEntity { /// Friendly name shown in dropdowns, e.g. "Main Cabinet" or "Outdoor Blast Pot". [Required] [StringLength(100)] public string Name { get; set; } = string.Empty; public BlastSetupType SetupType { get; set; } = BlastSetupType.PressurePot; /// Compressor CFM available at the blast nozzle. [Range(0, 9999)] public decimal CompressorCfm { get; set; } /// Nozzle orifice number (2–8). [Range(2, 8)] public int BlastNozzleSize { get; set; } = 5; public BlastSubstrateType PrimarySubstrate { get; set; } = BlastSubstrateType.Mixed; /// /// When set, bypasses the derived formula and uses this exact rate (sqft/hr). /// Useful for shops that have measured their own throughput. /// [Range(0, 99999)] public decimal? BlastRateSqFtPerHourOverride { get; set; } /// Used as the default rate when no setup is explicitly selected in the wizard. public bool IsDefault { get; set; } public bool IsActive { get; set; } = true; public int DisplayOrder { get; set; } // Navigation public virtual Company Company { get; set; } = null!; }