Primer subida completa

This commit is contained in:
nickpons666
2026-01-19 15:20:36 -06:00
commit 85894619d8
146 changed files with 3620 additions and 0 deletions

68
sql/schema.sql Executable file
View 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);