47 lines
1.6 KiB
C#
47 lines
1.6 KiB
C#
using System.ComponentModel.DataAnnotations;
|
||
using PowderCoating.Core.Enums;
|
||
|
||
namespace PowderCoating.Core.Entities;
|
||
|
||
/// <summary>
|
||
/// 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.
|
||
/// </summary>
|
||
public class CompanyBlastSetup : BaseEntity
|
||
{
|
||
/// <summary>Friendly name shown in dropdowns, e.g. "Main Cabinet" or "Outdoor Blast Pot".</summary>
|
||
[Required]
|
||
[StringLength(100)]
|
||
public string Name { get; set; } = string.Empty;
|
||
|
||
public BlastSetupType SetupType { get; set; } = BlastSetupType.PressurePot;
|
||
|
||
/// <summary>Compressor CFM available at the blast nozzle.</summary>
|
||
[Range(0, 9999)]
|
||
public decimal CompressorCfm { get; set; }
|
||
|
||
/// <summary>Nozzle orifice number (2–8).</summary>
|
||
[Range(2, 8)]
|
||
public int BlastNozzleSize { get; set; } = 5;
|
||
|
||
public BlastSubstrateType PrimarySubstrate { get; set; } = BlastSubstrateType.Mixed;
|
||
|
||
/// <summary>
|
||
/// When set, bypasses the derived formula and uses this exact rate (sqft/hr).
|
||
/// Useful for shops that have measured their own throughput.
|
||
/// </summary>
|
||
[Range(0, 99999)]
|
||
public decimal? BlastRateSqFtPerHourOverride { get; set; }
|
||
|
||
/// <summary>Used as the default rate when no setup is explicitly selected in the wizard.</summary>
|
||
public bool IsDefault { get; set; }
|
||
|
||
public bool IsActive { get; set; } = true;
|
||
|
||
public int DisplayOrder { get; set; }
|
||
|
||
// Navigation
|
||
public virtual Company Company { get; set; } = null!;
|
||
}
|