139 lines
3.7 KiB
C#
139 lines
3.7 KiB
C#
|
|
using System.ComponentModel.DataAnnotations;
|
||
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
||
|
|
|
||
|
|
namespace GestorFacturas.API.Models;
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Entidad que almacena la configuración completa del sistema.
|
||
|
|
/// Solo existe un registro (ID=1) para toda la aplicación.
|
||
|
|
/// </summary>
|
||
|
|
public class Configuracion
|
||
|
|
{
|
||
|
|
[Key]
|
||
|
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||
|
|
public int Id { get; set; }
|
||
|
|
|
||
|
|
// ===== CONFIGURACIÓN DE PERIODICIDAD =====
|
||
|
|
/// <summary>
|
||
|
|
/// Tipo de periodicidad: "Minutos", "Dias", "Meses"
|
||
|
|
/// </summary>
|
||
|
|
[Required]
|
||
|
|
[MaxLength(20)]
|
||
|
|
public string Periodicidad { get; set; } = "Dias";
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Valor numérico de la periodicidad (ej: 1, 5, 30)
|
||
|
|
/// </summary>
|
||
|
|
[Required]
|
||
|
|
public int ValorPeriodicidad { get; set; } = 1;
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Hora específica de ejecución (formato HH:mm:ss)
|
||
|
|
/// </summary>
|
||
|
|
[Required]
|
||
|
|
[MaxLength(10)]
|
||
|
|
public string HoraEjecucion { get; set; } = "00:00:00";
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Última vez que se ejecutó el proceso
|
||
|
|
/// </summary>
|
||
|
|
public DateTime? UltimaEjecucion { get; set; }
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Resultado del último proceso (true=Exitoso, false=Con Errores)
|
||
|
|
/// </summary>
|
||
|
|
public bool Estado { get; set; } = true;
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Indica si el servicio está activo o detenido
|
||
|
|
/// </summary>
|
||
|
|
public bool EnEjecucion { get; set; } = false;
|
||
|
|
|
||
|
|
// ===== CONFIGURACIÓN BASE DE DATOS ERP (EXTERNA) =====
|
||
|
|
/// <summary>
|
||
|
|
/// Servidor de SQL Server del ERP
|
||
|
|
/// </summary>
|
||
|
|
[Required]
|
||
|
|
[MaxLength(200)]
|
||
|
|
public string DBServidor { get; set; } = "TECNICA3";
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Nombre de la base de datos del ERP
|
||
|
|
/// </summary>
|
||
|
|
[Required]
|
||
|
|
[MaxLength(100)]
|
||
|
|
public string DBNombre { get; set; } = string.Empty;
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Usuario de SQL Server (si no usa autenticación integrada)
|
||
|
|
/// </summary>
|
||
|
|
[MaxLength(500)]
|
||
|
|
public string? DBUsuario { get; set; }
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Contraseña de SQL Server (si no usa autenticación integrada)
|
||
|
|
/// </summary>
|
||
|
|
[MaxLength(500)]
|
||
|
|
public string? DBClave { get; set; }
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Usar autenticación integrada de Windows (true) o credenciales SQL (false)
|
||
|
|
/// </summary>
|
||
|
|
public bool DBTrusted { get; set; } = true;
|
||
|
|
|
||
|
|
// ===== RUTAS DE ARCHIVOS =====
|
||
|
|
/// <summary>
|
||
|
|
/// Ruta de red donde se buscan los PDFs originales (Origen)
|
||
|
|
/// </summary>
|
||
|
|
[Required]
|
||
|
|
[MaxLength(500)]
|
||
|
|
public string RutaFacturas { get; set; } = string.Empty;
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Ruta de red donde se organizan los PDFs procesados (Destino)
|
||
|
|
/// </summary>
|
||
|
|
[Required]
|
||
|
|
[MaxLength(500)]
|
||
|
|
public string RutaDestino { get; set; } = string.Empty;
|
||
|
|
|
||
|
|
// ===== CONFIGURACIÓN SMTP =====
|
||
|
|
/// <summary>
|
||
|
|
/// Servidor SMTP para envío de alertas
|
||
|
|
/// </summary>
|
||
|
|
[MaxLength(200)]
|
||
|
|
public string? SMTPServidor { get; set; }
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Puerto del servidor SMTP
|
||
|
|
/// </summary>
|
||
|
|
public int SMTPPuerto { get; set; } = 587;
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Usuario para autenticación SMTP
|
||
|
|
/// </summary>
|
||
|
|
[MaxLength(500)]
|
||
|
|
public string? SMTPUsuario { get; set; }
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Contraseña para autenticación SMTP
|
||
|
|
/// </summary>
|
||
|
|
[MaxLength(500)]
|
||
|
|
public string? SMTPClave { get; set; }
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Usar SSL/TLS para conexión SMTP
|
||
|
|
/// </summary>
|
||
|
|
public bool SMTPSSL { get; set; } = true;
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Dirección de correo destinatario para alertas
|
||
|
|
/// </summary>
|
||
|
|
[MaxLength(200)]
|
||
|
|
public string? SMTPDestinatario { get; set; }
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Activar/desactivar envío de alertas por correo
|
||
|
|
/// </summary>
|
||
|
|
public bool AvisoMail { get; set; } = false;
|
||
|
|
}
|