feat: project scaffolding, database schema, config
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
94
sql/schema.sql
Normal file
94
sql/schema.sql
Normal file
@@ -0,0 +1,94 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user