Primer subida completa
This commit is contained in:
68
sql/schema.sql
Executable file
68
sql/schema.sql
Executable file
@@ -0,0 +1,68 @@
|
||||
-- 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);
|
||||
Reference in New Issue
Block a user