40 lines
1.0 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|