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