35 lines
1.6 KiB
SQL
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; |