using System.ComponentModel.DataAnnotations; namespace CredentialManager.Models; /// /// Entità per memorizzare le associazioni tra record sorgente e destinazione /// public class RecordAssociation { [Key] public int Id { get; set; } /// /// Nome della sorgente dati (nome tabella/file/foglio) /// [Required] [MaxLength(200)] public string SourceName { get; set; } = string.Empty; /// /// Tipo di sorgente (database, file) /// [Required] [MaxLength(50)] public string SourceType { get; set; } = string.Empty; /// /// Chiave del record sorgente (può essere un ID o una combinazione di campi) /// [Required] [MaxLength(500)] public string SourceKey { get; set; } = string.Empty; /// /// Nome dell'entità di destinazione /// [Required] [MaxLength(200)] public string DestinationEntity { get; set; } = string.Empty; /// /// ID del record di destinazione /// [Required] [MaxLength(200)] public string DestinationId { get; set; } = string.Empty; /// /// Nome della credenziale REST utilizzata /// [Required] [MaxLength(100)] public string RestCredentialName { get; set; } = string.Empty; /// /// Data e ora della creazione dell'associazione /// public DateTime CreatedAt { get; set; } = DateTime.UtcNow; /// /// Data e ora dell'ultimo aggiornamento /// public DateTime? UpdatedAt { get; set; } /// /// Indica se l'associazione è ancora attiva /// public bool IsActive { get; set; } = true; /// /// Informazioni aggiuntive in formato JSON /// [MaxLength(2000)] public string? AdditionalInfo { get; set; } }