CREATE DATABASE IF NOT EXISTS reporte_manager;
USE reporte_manager;

CREATE TABLE usuarios (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(100) NOT NULL UNIQUE,
    password_hash TEXT NOT NULL,
    es_superadmin TINYINT(1) DEFAULT 0,
    puede_crear_usuarios TINYINT(1) DEFAULT 0,
    activo TINYINT(1) DEFAULT 1
);

CREATE TABLE reportes (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(255) NOT NULL,
    url TEXT NOT NULL,
    activo TINYINT(1) DEFAULT 1
);

CREATE TABLE permisos_reportes (
    id_usuario INT,
    id_reporte INT,
    PRIMARY KEY (id_usuario, id_reporte),
    FOREIGN KEY (id_usuario) REFERENCES usuarios(id),
    FOREIGN KEY (id_reporte) REFERENCES reportes(id)
);

ALTER TABLE usuarios
ADD COLUMN fullname VARCHAR(100) NOT NULL AFTER password_hash,
ADD COLUMN mail VARCHAR(150) NOT NULL AFTER fullname;