Initial commit — Donna portal v1
Setup completo del portal interno donna.aal-law.com: * Landing público con OAuth login + grid de apps autenticado * Flujo OAuth2 contra Mailcow (mail.aal-law.com) * Sesiones SSO compartidas en el dominio (cookie donna_session, 8h) * Whitelist de dominios aal-law.com / aalnlaw.com * App "Control de Escrituras" migrada desde ZH-Consultores/control-escrituras (mismo schema, mismo frontend, ahora con shared Auth/Db/Config libs) * Migraciones SQL para users, escrituras_tramites, escrituras_historial * Caddy on :80 con rewrite extless → .php * Backup diario MariaDB (systemd timer + script) con retención 14d * Documentación de arquitectura en README + infra files en docs/infra
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
-- ============================================================
|
||||
-- Donna Portal — Schema 001: Core
|
||||
-- ============================================================
|
||||
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
email VARCHAR(255) NOT NULL UNIQUE,
|
||||
name VARCHAR(255) NOT NULL DEFAULT '',
|
||||
first_seen_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
last_login_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
INDEX idx_email (email)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
@@ -0,0 +1,51 @@
|
||||
-- ============================================================
|
||||
-- Donna Portal — Schema 002: Control de Escrituras
|
||||
-- (migrado del repo ZH-Consultores/control-escrituras)
|
||||
-- ============================================================
|
||||
|
||||
CREATE TABLE IF NOT EXISTS escrituras_tramites (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
tramite VARCHAR(255) NOT NULL DEFAULT '',
|
||||
cliente VARCHAR(255) NOT NULL DEFAULT '',
|
||||
abogado VARCHAR(100) NOT NULL DEFAULT '',
|
||||
notaria VARCHAR(100) NOT NULL DEFAULT '',
|
||||
inscribe ENUM('Sí','No') NOT NULL DEFAULT 'Sí',
|
||||
altera_turno ENUM('Sí','No') NOT NULL DEFAULT 'No',
|
||||
instrucciones TEXT NOT NULL,
|
||||
fecha_solicitud DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
estatus ENUM(
|
||||
'Solicitado',
|
||||
'Recibido',
|
||||
'En Proceso',
|
||||
'Protocolizado',
|
||||
'En Registro',
|
||||
'Inscrito'
|
||||
) NOT NULL DEFAULT 'Solicitado',
|
||||
ultima_actualizacion DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
ON UPDATE CURRENT_TIMESTAMP,
|
||||
observaciones TEXT NOT NULL,
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
creado_por VARCHAR(255) NOT NULL DEFAULT '',
|
||||
actualizado_por VARCHAR(255) NOT NULL DEFAULT '',
|
||||
|
||||
INDEX idx_estatus (estatus),
|
||||
INDEX idx_abogado (abogado),
|
||||
INDEX idx_inscribe (inscribe),
|
||||
INDEX idx_altera (altera_turno),
|
||||
INDEX idx_fecha (fecha_solicitud DESC)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS escrituras_historial (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
tramite_id INT NOT NULL,
|
||||
modificado_por VARCHAR(255) NOT NULL DEFAULT '',
|
||||
modificado_en DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
campo VARCHAR(100) NOT NULL DEFAULT '',
|
||||
valor_anterior TEXT NOT NULL,
|
||||
valor_nuevo TEXT NOT NULL,
|
||||
|
||||
INDEX idx_tramite (tramite_id),
|
||||
INDEX idx_fecha (modificado_en DESC),
|
||||
CONSTRAINT fk_escrituras_historial_tramite
|
||||
FOREIGN KEY (tramite_id) REFERENCES escrituras_tramites(id) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
Reference in New Issue
Block a user