-- Tabla para configuración de WINSAAI vinculada a usuarios (SQL Server) CREATE TABLE winsaai_config ( id INT IDENTITY(1,1) PRIMARY KEY, id_usuario INT NOT NULL, -- ID del usuario propietario de la configuración host NVARCHAR(255) NOT NULL, -- Dirección IP o DNS del servidor WINSAAI port INT NOT NULL DEFAULT 80, -- Puerto de conexión protocol NVARCHAR(10) NOT NULL DEFAULT 'https' CHECK (protocol IN ('http', 'https')), -- Protocolo de conexión usuario NVARCHAR(100) NOT NULL, -- Usuario de autenticación password NVARCHAR(500) NOT NULL, -- Contraseña encriptada sync_pedimentos BIT DEFAULT 1, -- Sincronizar pedimentos sync_coves BIT DEFAULT 1, -- Sincronizar COVES status NVARCHAR(20) NOT NULL DEFAULT 'inactivo' CHECK (status IN ('activo', 'inactivo', 'error')), -- Estado de la conexión last_sync DATETIME2 NULL, -- Última sincronización exitosa created_at DATETIME2 NOT NULL DEFAULT GETDATE(), updated_at DATETIME2 NOT NULL DEFAULT GETDATE(), -- Constraints CONSTRAINT UQ_winsaai_config_usuario UNIQUE (id_usuario) -- Un usuario solo puede tener una configuración ); -- Indices para mejorar rendimiento CREATE INDEX IX_winsaai_config_status ON winsaai_config (status); CREATE INDEX IX_winsaai_config_usuario ON winsaai_config (id_usuario); -- Trigger para actualizar updated_at automáticamente CREATE TRIGGER TR_winsaai_config_updated_at ON winsaai_config AFTER UPDATE AS BEGIN SET NOCOUNT ON; UPDATE winsaai_config SET updated_at = GETDATE() WHERE id IN (SELECT id FROM inserted); END;