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!;
}