69 lines
2.9 KiB
SQL
Executable File
69 lines
2.9 KiB
SQL
Executable File
-- 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);
|