feat: introduce training module with new entities, migrations, API, and frontend application, and add article type and validity days.

This commit is contained in:
2025-12-12 18:12:51 +01:00
parent 49abef6f96
commit 4810d49410
32 changed files with 11685 additions and 211 deletions

View File

@@ -0,0 +1,39 @@
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; // Or unknown? Assuming valid if no expiration.
var days = (DataScadenza.Value - DateTime.Today).TotalDays;
if (days < 0) return TrainingStatus.Expired;
if (days <= 30) return TrainingStatus.Expiring;
return TrainingStatus.Valid;
}
}
}