-- ============================================================
-- SISEG - Sistema de Reportes Multi-empresa
-- Schema v1.0
-- ============================================================

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

-- Empresas (colegios)
CREATE TABLE empresas (
    id          INT AUTO_INCREMENT PRIMARY KEY,
    nombre      VARCHAR(200) NOT NULL,
    ruc         VARCHAR(11)  NOT NULL UNIQUE,
    logo_path   VARCHAR(300) DEFAULT NULL,
    activo      TINYINT(1)   NOT NULL DEFAULT 1,
    creado_en   DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;

-- Usuarios
CREATE TABLE usuarios (
    id          INT AUTO_INCREMENT PRIMARY KEY,
    empresa_id  INT          DEFAULT NULL,           -- NULL = Admin global
    nombre      VARCHAR(150) NOT NULL,
    email       VARCHAR(150) NOT NULL UNIQUE,
    password    VARCHAR(255) NOT NULL,               -- bcrypt
    rol         ENUM('admin','usuario') NOT NULL DEFAULT 'usuario',
    activo      TINYINT(1)   NOT NULL DEFAULT 1,
    creado_en   DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT fk_usuario_empresa FOREIGN KEY (empresa_id) REFERENCES empresas(id) ON DELETE SET NULL
) ENGINE=InnoDB;

-- Historial de procesamientos (solo metadata, sin archivo)
CREATE TABLE procesamientos (
    id              INT AUTO_INCREMENT PRIMARY KEY,
    empresa_id      INT          NOT NULL,
    usuario_id      INT          NOT NULL,
    archivo_data    VARCHAR(300) NOT NULL,
    archivo_bajas   VARCHAR(300) DEFAULT NULL,
    total_comprobantes INT       DEFAULT 0,
    total_bajas     INT          DEFAULT 0,
    total_pen       DECIMAL(12,2) DEFAULT 0,
    neto_pen        DECIMAL(12,2) DEFAULT 0,
    procesado_en    DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT fk_proc_empresa  FOREIGN KEY (empresa_id)  REFERENCES empresas(id),
    CONSTRAINT fk_proc_usuario  FOREIGN KEY (usuario_id)  REFERENCES usuarios(id)
) ENGINE=InnoDB;

-- Admin inicial (password: Admin2024!)
INSERT INTO usuarios (empresa_id, nombre, email, password, rol)
VALUES (NULL, 'Administrador SISEG', 'admin@siseg.pe',
        '$2y$12$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uZutjpCTi', 'admin');
