-- ============================================================ -- Donna — Schema 004: Control de Trámites Legales -- ============================================================ CREATE TABLE IF NOT EXISTS tramites_legales ( id INT AUTO_INCREMENT PRIMARY KEY, codigo VARCHAR(20) NOT NULL UNIQUE, departamento ENUM('adm','corp','mig','lit') NOT NULL, -- Comunes cliente VARCHAR(255) NOT NULL DEFAULT '', abogado VARCHAR(100) NOT NULL DEFAULT '', estatus VARCHAR(50) NOT NULL DEFAULT 'Solicitado', instrucciones TEXT NOT NULL, fecha_solicitud DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- adm + corp nombre VARCHAR(255) NOT NULL DEFAULT '', -- adm institucion VARCHAR(255) NOT NULL DEFAULT '', -- corp tipo_documento VARCHAR(255) NOT NULL DEFAULT '', -- mig tipo_tramite VARCHAR(255) NOT NULL DEFAULT '', doc_completa ENUM('Sí','No') NULL, permiso_trabajo ENUM('Sí','No') NULL, dependientes ENUM('Sí','No') NULL, fecha_vencimiento DATE NULL, -- lit esfera ENUM('Civil','Penal') NULL, instancia ENUM('Primera','Segunda','CSJ') NULL, circuito VARCHAR(100) NOT NULL DEFAULT '', juzgado VARCHAR(255) NOT NULL DEFAULT '', tipo_proceso VARCHAR(255) NOT NULL DEFAULT '', incidentes ENUM('Sí','No') NULL, amparo ENUM('Sí','No') NULL, fecha_termino DATE NULL, -- Auditoría creado_por VARCHAR(255) NOT NULL DEFAULT '', actualizado_por VARCHAR(255) NOT NULL DEFAULT '', created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, INDEX idx_dept (departamento), INDEX idx_estatus (estatus), INDEX idx_abogado (abogado), INDEX idx_cliente (cliente), INDEX idx_fecha (fecha_solicitud DESC) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS tramites_obs ( id INT AUTO_INCREMENT PRIMARY KEY, tramite_id INT NOT NULL, texto TEXT NOT NULL, abogado VARCHAR(100) NOT NULL DEFAULT '', autor_email VARCHAR(255) NOT NULL DEFAULT '', fecha DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, INDEX idx_tramite (tramite_id), INDEX idx_fecha (fecha DESC), CONSTRAINT fk_tramites_obs FOREIGN KEY (tramite_id) REFERENCES tramites_legales(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS tramites_hours ( id INT AUTO_INCREMENT PRIMARY KEY, tramite_id INT NOT NULL, abogado VARCHAR(100) NOT NULL DEFAULT '', hrs DECIMAL(6,2) NOT NULL DEFAULT 0, descripcion VARCHAR(500) NOT NULL DEFAULT '', autor_email VARCHAR(255) NOT NULL DEFAULT '', fecha DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, INDEX idx_tramite (tramite_id), INDEX idx_fecha (fecha DESC), CONSTRAINT fk_tramites_hours FOREIGN KEY (tramite_id) REFERENCES tramites_legales(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- Contador para generar códigos ADM-001 / CRP-001 / MIG-001 / LIT-001 CREATE TABLE IF NOT EXISTS tramites_seq ( departamento VARCHAR(10) PRIMARY KEY, next_seq INT NOT NULL DEFAULT 1 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; INSERT IGNORE INTO tramites_seq (departamento, next_seq) VALUES ('adm', 1), ('corp', 1), ('mig', 1), ('lit', 1);