using System.ComponentModel.DataAnnotations; namespace CredentialManager.Models; /// /// Entità per memorizzare le credenziali nel database /// public class CredentialEntity { [Key] public int Id { get; set; } [Required] [MaxLength(100)] public string Name { get; set; } = string.Empty; [Required] [MaxLength(50)] public string Type { get; set; } = string.Empty; // Database, REST, etc. [MaxLength(50)] public string? DatabaseType { get; set; } // SqlServer, MySql, etc. [MaxLength(500)] public string? ConnectionString { get; set; } [MaxLength(200)] public string? Host { get; set; } public int? Port { get; set; } [MaxLength(100)] public string? DatabaseName { get; set; } [MaxLength(100)] public string? Username { get; set; } /// /// Password criptata /// public string? EncryptedPassword { get; set; } [MaxLength(500)] public string? EncryptedApiKey { get; set; } [MaxLength(500)] public string? EncryptedAuthToken { get; set; } public int CommandTimeout { get; set; } = 30; public int TimeoutSeconds { get; set; } = 100; public bool IgnoreSslErrors { get; set; } = false; [MaxLength(50)] public string? RestServiceType { get; set; } // Generic, SapB1ServiceLayer, Salesforce [MaxLength(2000)] public string? Headers { get; set; } // JSON serialized headers [MaxLength(2000)] public string? AdditionalParameters { get; set; } // JSON per parametri aggiuntivi public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime? UpdatedAt { get; set; } [MaxLength(100)] public string? CreatedBy { get; set; } public bool IsActive { get; set; } = true; }