Files
gestoria-lp/sql/schema.sql
Gestoría LP 10bc97e8b9 feat: project scaffolding, database schema, config
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 23:25:55 +00:00

95 lines
3.2 KiB
SQL

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;