feat(udt-001): db schema for Usuario with admin seed
This commit is contained in:
43
database/migrations/V001__create_usuario.sql
Normal file
43
database/migrations/V001__create_usuario.sql
Normal file
@@ -0,0 +1,43 @@
|
||||
-- V001__create_usuario.sql
|
||||
-- Creates the core Usuario table for SIG-CM2
|
||||
-- Run on: SIGCM2 (prod) and SIGCM2_Test (integration tests)
|
||||
|
||||
SET QUOTED_IDENTIFIER ON;
|
||||
SET ANSI_NULLS ON;
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('dbo.Usuario', 'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE dbo.Usuario (
|
||||
Id INT IDENTITY(1,1) NOT NULL CONSTRAINT PK_Usuario PRIMARY KEY,
|
||||
Username NVARCHAR(50) NOT NULL,
|
||||
PasswordHash NVARCHAR(255) NOT NULL,
|
||||
Nombre NVARCHAR(100) NOT NULL,
|
||||
Apellido NVARCHAR(100) NOT NULL,
|
||||
Email NVARCHAR(150) NULL,
|
||||
Rol VARCHAR(30) NOT NULL,
|
||||
PermisosJson NVARCHAR(MAX) NOT NULL CONSTRAINT DF_Usuario_Permisos DEFAULT('[]'),
|
||||
Activo BIT NOT NULL CONSTRAINT DF_Usuario_Activo DEFAULT(1),
|
||||
FechaCreacion DATETIME2(3) NOT NULL CONSTRAINT DF_Usuario_FechaCreacion DEFAULT(SYSUTCDATETIME()),
|
||||
FechaModificacion DATETIME2(3) NULL,
|
||||
UltimoLogin DATETIME2(3) NULL,
|
||||
CONSTRAINT UQ_Usuario_Username UNIQUE (Username),
|
||||
CONSTRAINT CK_Usuario_Rol CHECK (Rol IN ('admin','vendedor','tasador','consulta'))
|
||||
);
|
||||
|
||||
PRINT 'Table dbo.Usuario created successfully.';
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
PRINT 'Table dbo.Usuario already exists — skipping.';
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'IX_Usuario_Username_Activo' AND object_id = OBJECT_ID('dbo.Usuario'))
|
||||
BEGIN
|
||||
CREATE INDEX IX_Usuario_Username_Activo
|
||||
ON dbo.Usuario(Username)
|
||||
WHERE Activo = 1;
|
||||
PRINT 'Index IX_Usuario_Username_Activo created.';
|
||||
END
|
||||
GO
|
||||
30
database/seeds/S001__seed_admin.sql
Normal file
30
database/seeds/S001__seed_admin.sql
Normal file
@@ -0,0 +1,30 @@
|
||||
-- S001__seed_admin.sql
|
||||
-- Seeds the default admin user for SIG-CM2
|
||||
-- BCrypt hash of '@Diego550@' at cost 12
|
||||
-- Generated: 2026-04-13
|
||||
|
||||
SET QUOTED_IDENTIFIER ON;
|
||||
SET ANSI_NULLS ON;
|
||||
SET NOCOUNT ON;
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM dbo.Usuario WHERE Username = 'admin')
|
||||
BEGIN
|
||||
INSERT INTO dbo.Usuario (Username, PasswordHash, Nombre, Apellido, Email, Rol, PermisosJson, Activo)
|
||||
VALUES (
|
||||
'admin',
|
||||
'$2a$12$rmq6tlSAQ8WXhR2CwLCSeuwCJKz/.8Eab95UQCUNfwe4dokeOqMcW',
|
||||
'Administrador',
|
||||
'Sistema',
|
||||
NULL,
|
||||
'admin',
|
||||
'["*"]',
|
||||
1
|
||||
);
|
||||
PRINT 'Admin user seeded successfully.';
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
PRINT 'Admin user already exists — skipping.';
|
||||
END
|
||||
GO
|
||||
Reference in New Issue
Block a user