CREATE DATABASE IF NOT EXISTS miboleta_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE miboleta_db;

-- Tabla de administradores
CREATE TABLE IF NOT EXISTS usuarios_admin (
    id INT AUTO_INCREMENT PRIMARY KEY,
    usuario VARCHAR(50) NOT NULL UNIQUE,
    password_hash VARCHAR(64) NOT NULL, -- SHA-256
    creado_en TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Admin por defecto (Usuario: admin | Clave: admin123)
-- El hash corresponde a SHA-256 de "admin123"
INSERT IGNORE INTO usuarios_admin (usuario, password_hash) 
VALUES ('admin', '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9');

-- Tabla principal de Boletas de Pago
CREATE TABLE IF NOT EXISTS boletas (
    id INT AUTO_INCREMENT PRIMARY KEY,
    boleta_nro VARCHAR(20) DEFAULT '000000',
    dni VARCHAR(15) NOT NULL,
    apellidos VARCHAR(120) NOT NULL,
    nombres VARCHAR(120) NOT NULL,
    nombre_completo VARCHAR(250) NOT NULL,
    fecha_nac VARCHAR(15) NOT NULL, -- Formato DD/MM/AAAA
    establecimiento VARCHAR(150),
    cargo VARCHAR(120),
    tipo_servidor VARCHAR(100) DEFAULT 'Planilla CAFAE (IIEE)',
    situacion VARCHAR(100),
    fecha_reg VARCHAR(100),
    cuenta VARCHAR(50),
    pension VARCHAR(100),
    cuspp VARCHAR(50),
    leyenda VARCHAR(255),
    mes VARCHAR(25) NOT NULL,
    anio VARCHAR(10) NOT NULL,
    ing_nom VARCHAR(50) DEFAULT '+inc.lab.',
    ing_mon DECIMAL(10,2) DEFAULT 0.00,
    dsc_nom VARCHAR(50) DEFAULT '',
    dsc_mon DECIMAL(10,2) DEFAULT 0.00,
    t_remun DECIMAL(10,2) DEFAULT 0.00,
    t_dscto DECIMAL(10,2) DEFAULT 0.00,
    t_liqui DECIMAL(10,2) DEFAULT 0.00,
    INDEX idx_dni (dni),
    INDEX idx_periodo (anio, mes),
    UNIQUE KEY uq_boleta_periodo (dni, anio, mes, boleta_nro)
);