Files
zentral/src/backend/Zentral.Domain/Entities/Training/TrainingRecord.cs

40 lines
1.0 KiB
C#

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