95 lines
3.2 KiB
SQL
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;
|