CREATE DATABASE IF NOT EXISTS gestoria_lp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE gestoria_lp; CREATE TABLE usuarios ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password_hash VARCHAR(255) NOT NULL, email VARCHAR(100) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB; CREATE TABLE clientes ( id INT AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(150) NOT NULL, telefono VARCHAR(20), email VARCHAR(100), direccion TEXT, notas TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB; CREATE TABLE credenciales ( id INT AUTO_INCREMENT PRIMARY KEY, cliente_id INT NOT NULL, portal VARCHAR(100) NOT NULL, usuario VARCHAR(150) NOT NULL, password_enc TEXT NOT NULL, notas TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (cliente_id) REFERENCES clientes(id) ON DELETE CASCADE ) ENGINE=InnoDB; CREATE TABLE tramites ( id INT AUTO_INCREMENT PRIMARY KEY, cliente_id INT NOT NULL, tipo ENUM('visa','sentri','pasaporte','adelanto_cita','doble_nacionalidad') NOT NULL, estado ENUM('nuevo','en_proceso','en_revision','completado','cancelado') DEFAULT 'nuevo', fecha_solicitud DATE, fecha_cita DATE, fecha_resolucion DATE, precio DECIMAL(10,2), notas TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (cliente_id) REFERENCES clientes(id) ON DELETE CASCADE ) ENGINE=InnoDB; CREATE TABLE documentos ( id INT AUTO_INCREMENT PRIMARY KEY, cliente_id INT NOT NULL, tramite_id INT, nombre VARCHAR(255) NOT NULL, ruta_archivo VARCHAR(500) NOT NULL, tipo VARCHAR(50), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (cliente_id) REFERENCES clientes(id) ON DELETE CASCADE, FOREIGN KEY (tramite_id) REFERENCES tramites(id) ON DELETE SET NULL ) ENGINE=InnoDB; CREATE TABLE solicitudes ( id INT AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(150) NOT NULL, telefono VARCHAR(20), email VARCHAR(100), servicio VARCHAR(50) NOT NULL, datos_formulario JSON, estado ENUM('nueva','contactada','convertida','descartada') DEFAULT 'nueva', cliente_id INT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (cliente_id) REFERENCES clientes(id) ON DELETE SET NULL ) ENGINE=InnoDB; CREATE TABLE recordatorios ( id INT AUTO_INCREMENT PRIMARY KEY, cliente_id INT, tramite_id INT, titulo VARCHAR(200) NOT NULL, descripcion TEXT, fecha DATE NOT NULL, completado TINYINT(1) DEFAULT 0, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (cliente_id) REFERENCES clientes(id) ON DELETE CASCADE, FOREIGN KEY (tramite_id) REFERENCES tramites(id) ON DELETE CASCADE ) ENGINE=InnoDB; CREATE TABLE testimonios ( id INT AUTO_INCREMENT PRIMARY KEY, nombre_cliente VARCHAR(150) NOT NULL, texto TEXT NOT NULL, calificacion TINYINT CHECK (calificacion BETWEEN 1 AND 5), activo TINYINT(1) DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB;