Files
MVE/winsaai_config_sqlserver.sql
2025-10-21 11:41:30 -06:00

35 lines
1.6 KiB
SQL

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