using System; using System.ComponentModel.DataAnnotations.Schema; namespace Zentral.Domain.Entities.Training; public enum TrainingStatus { Valid, Expiring, Expired } public class TrainingRecord : BaseEntity { public int ClienteContattoId { get; set; } public ClienteContatto ClienteContatto { get; set; } = null!; public int ArticoloId { get; set; } public Articolo Articolo { get; set; } = null!; public DateTime DataEsecuzione { get; set; } public DateTime? DataScadenza { get; set; } public string? AttestatoUrl { get; set; } public string? Note { get; set; } [NotMapped] public TrainingStatus Stato { get { if (!DataScadenza.HasValue) return TrainingStatus.Valid; var days = (DataScadenza.Value - DateTime.Today).TotalDays; if (days < 0) return TrainingStatus.Expired; if (days <= 30) return TrainingStatus.Expiring; // Configurable ideally return TrainingStatus.Valid; } } }