namespace GestorFacturas.API.Models.DTOs; /// /// DTO para transferencia de datos de configuración /// public class ConfiguracionDto { public int Id { get; set; } // Periodicidad public string Periodicidad { get; set; } = "Dias"; public int ValorPeriodicidad { get; set; } = 1; public string HoraEjecucion { get; set; } = "00:00:00"; public DateTime? UltimaEjecucion { get; set; } public DateTime? ProximaEjecucion { get; set; } public bool Estado { get; set; } public bool EnEjecucion { get; set; } // Base de Datos Externa public string DBServidor { get; set; } = "127.0.0.1"; public string DBNombre { get; set; } = string.Empty; public string? DBUsuario { get; set; } public string? DBClave { get; set; } public bool DBTrusted { get; set; } = true; // Rutas public string RutaFacturas { get; set; } = string.Empty; public string RutaDestino { get; set; } = string.Empty; // SMTP public string? SMTPServidor { get; set; } public int SMTPPuerto { get; set; } = 587; public string? SMTPUsuario { get; set; } public string? SMTPClave { get; set; } public bool SMTPSSL { get; set; } = true; public string? SMTPDestinatario { get; set; } public bool AvisoMail { get; set; } } /// /// DTO para probar conexión a base de datos externa /// public class ProbarConexionDto { public string Servidor { get; set; } = string.Empty; public string NombreDB { get; set; } = string.Empty; public string? Usuario { get; set; } public string? Clave { get; set; } public bool TrustedConnection { get; set; } = true; } /// /// DTO para probar configuración SMTP /// public class ProbarSMTPDto { public string Servidor { get; set; } = string.Empty; public int Puerto { get; set; } = 587; public string Usuario { get; set; } = string.Empty; public string Clave { get; set; } = string.Empty; public bool SSL { get; set; } = true; public string Destinatario { get; set; } = string.Empty; } /// /// DTO para solicitud de ejecución manual /// public class EjecucionManualDto { public DateTime FechaDesde { get; set; } = DateTime.Today; } /// /// DTO para respuesta de evento /// public class EventoDto { public int Id { get; set; } public DateTime Fecha { get; set; } public string Mensaje { get; set; } = string.Empty; public string Tipo { get; set; } = string.Empty; public bool Enviado { get; set; } } /// /// DTO para respuesta paginada /// public class PagedResult { public List Items { get; set; } = new(); public int TotalCount { get; set; } public int PageNumber { get; set; } public int PageSize { get; set; } public int TotalPages => (int)Math.Ceiling((double)TotalCount / PageSize); }