using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using static MP.MONO.Core.Enums; // // This is here so CodeMaid doesn't reorganize this document // namespace MP.MONO.Data.DbModels { /// /// Tabella TASK configurati x manutenzione preventiva /// [Table("PrevMaintTask")] public class PrevMaintTaskModel { /// /// UID /// [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int PMTaskId { get; set; } /// /// Macchina cui è riferito il task /// public int MachineId { get; set; } = 1; /// /// Indice esterno evento /// public int ExtIdx { get; set; } = 0; /// /// Area di riferimento generale x manutenzione /// public string PMTCode { get; set; } = ""; /// /// Gruppo logico di riferimento /// public string PMMGCode { get; set; } = ""; /// /// Valore per trigger di expiry /// public double ExpiryVal { get; set; } = 1; /// /// Descrizione intervento /// public string JobDescription { get; set; } = ""; /// /// Team / Ruolo responsabile /// public string PMUTCode { get; set; } = ""; /// /// Contatore associato al task /// public string CCode { get; set; } = ""; /// /// Indica che il task è protetto /// true = impostato dal costruttore (originale) /// public bool Protected { get; set; } = true; /// /// Indica che il task è disabilitato (es se ha interventi registrati e richeista eliminazione) /// public bool IsDisabled { get; set; } = false; /// /// Variabile in cui viene salvato il numero di Task effettuati associati (aggiornata ad ogni chiusura SchedTask) /// public int NumTaskDone { get; set; } = 0; [NotMapped] public bool IsValid { get => MachineId > 0 && ExpiryVal >= 1 && ExtIdx >= 0 && !string.IsNullOrEmpty(CCode) && !string.IsNullOrEmpty(PMTCode) && !string.IsNullOrEmpty(PMMGCode) && !string.IsNullOrEmpty(JobDescription) && !string.IsNullOrEmpty(PMUTCode); } /// /// Navigazione oggetto Machine /// [ForeignKey("MachineId")] public virtual MachineModel MachineNav { get; set; } = null!; /// /// Navigazione oggetto Counter /// [ForeignKey("CCode")] public virtual CounterModel CounterNav { get; set; } = null!; /// /// Navigazione oggetto User Team /// [ForeignKey("PMUTCode")] public virtual PMUTModel UserTeamNav { get; set; } = null!; /// /// Navigazione oggetto User Team /// [ForeignKey("PMMGCode")] public virtual PMMGroupModel MachGroupNav { get; set; } = null!; /// /// Navigazione oggetto User Team /// [ForeignKey("PMTCode")] public virtual PMTaskTopicModel TopicNav { get; set; } = null!; } }