-- Base de datos: Contenedor Condominio Ibiza
-- Script de creación de tablas e inserción de datos iniciales

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

-- Tabla de usuarios
CREATE TABLE IF NOT EXISTS users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) UNIQUE,
    nombre VARCHAR(100) NOT NULL,
    email VARCHAR(150) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    rol ENUM('admin', 'ayudante') NOT NULL DEFAULT 'ayudante',
    activo TINYINT(1) DEFAULT 1,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Tabla de configuración de días y horarios
CREATE TABLE IF NOT EXISTS dias_horarios (
    id INT AUTO_INCREMENT PRIMARY KEY,
    dia_semana ENUM('domingo', 'lunes', 'martes', 'miercoles', 'jueves', 'viernes', 'sabado') NOT NULL UNIQUE,
    hora_apertura TIME NOT NULL,
    hora_cierre TIME NOT NULL,
    activo TINYINT(1) DEFAULT 1,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Tabla de asignaciones de turnos por semana
CREATE TABLE IF NOT EXISTS asignaciones_turnos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    semana_inicio DATE NOT NULL,
    semana_fin DATE NOT NULL,
    orden_turno INT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
    UNIQUE KEY unique_semana (semana_inicio)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Tabla para controlar el orden de rotación de personas
CREATE TABLE IF NOT EXISTS rotacion_orden (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    orden INT NOT NULL,
    activo TINYINT(1) DEFAULT 1,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Insertar usuario administrador inicial (password: admin123)
INSERT INTO users (username, nombre, email, password, rol) VALUES
('admin', 'Administrador', 'admin@ibiza.com', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'admin');

-- Insertar usuarios de ejemplo (ayudantes)
INSERT INTO users (username, nombre, email, password, rol) VALUES
('miguel', 'Miguel', 'miguel@ibiza.com', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'ayudante'),
('ana', 'Ana', 'ana@ibiza.com', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'ayudante'),
('carlos', 'Carlos', 'carlos@ibiza.com', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'ayudante');

-- Insertar orden de rotación
INSERT INTO rotacion_orden (user_id, orden) VALUES
(2, 1),
(3, 2),
(4, 3);
