namespace PowderCoating.Core.Entities;
///
/// Company-specific job priority lookup table.
/// Replaces hardcoded JobPriority enum to enable priority customization.
///
public class JobPriorityLookup : BaseEntity
{
///
/// Immutable priority code used in code logic (e.g., "LOW", "NORMAL", "URGENT", "RUSH").
/// Acts like the old enum name.
///
public string PriorityCode { get; set; } = string.Empty;
///
/// User-customizable display name shown in UI (e.g., "Standard", "Expedited", "Emergency").
///
public string DisplayName { get; set; } = string.Empty;
///
/// Priority level for sorting (1 = lowest priority, 5 = highest priority).
/// Replaces enum integer comparisons.
///
public int DisplayOrder { get; set; }
///
/// Bootstrap color class for badge styling (primary, secondary, success, danger, warning, info, dark).
/// Eliminates switch statement duplication for priority colors.
///
public string ColorClass { get; set; } = "secondary";
///
/// Optional Bootstrap icon class (e.g., "bi-arrow-up", "bi-exclamation-triangle").
///
public string? IconClass { get; set; }
///
/// Whether this priority is currently active and available for selection.
///
public bool IsActive { get; set; } = true;
///
/// System-defined priorities cannot be deleted.
///
public bool IsSystemDefined { get; set; } = true;
///
/// Optional description explaining when to use this priority level.
///
public string? Description { get; set; }
// Navigation properties
public virtual ICollection Jobs { get; set; } = new List();
}