CREATE DATABASE IF NOT EXISTS help_desk; USE help_desk; CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, rol ENUM('admin', 'agent', 'client') DEFAULT 'client', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS departments ( id INT AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(100) NOT NULL, descripcion TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS tickets ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, department_id INT, asunto VARCHAR(200) NOT NULL, mensaje TEXT NOT NULL, status ENUM('abierto', 'en_progreso', 'cerrado') DEFAULT 'abierto', prioridad ENUM('baja', 'media', 'alta', 'critica') DEFAULT 'media', assigned_to INT, 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, FOREIGN KEY (department_id) REFERENCES departments(id) ON DELETE SET NULL, FOREIGN KEY (assigned_to) REFERENCES users(id) ON DELETE SET NULL ); CREATE TABLE IF NOT EXISTS ticket_respuestas ( id INT AUTO_INCREMENT PRIMARY KEY, ticket_id INT NOT NULL, user_id INT NOT NULL, mensaje TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (ticket_id) REFERENCES tickets(id) ON DELETE CASCADE, FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ); INSERT INTO departments (nombre, descripcion) VALUES ('Soporte Técnico', 'Problemas técnicos y de software'), ('Facturación', 'Problemas de facturación y pagos'), ('Ventas', 'Consultas sobre ventas y productos'), ('General', 'Consultas generales'); INSERT INTO users (nombre, email, password, rol) VALUES ('Admin', 'admin@helpdesk.com', '$2b$10$EixZaYVK1fsbw1ZfbX3OXePaWxn96p36PQm4sEPhMNPfFhpYN76eO', 'admin'); -- Password: 123456