-- ═══════════════════════════════════════════════════════════════════════
-- 2026-10-22_04 · Plantillas del correo de los documentos (DTE)
-- ═══════════════════════════════════════════════════════════════════════
-- El asunto y el mensaje del correo que lleva el PDF y el JSON al cliente
-- se editan en Configuración fiscal. Cada plantilla se asigna a uno o más
-- tipos de documento (`tipos`, separados por coma); la que no tiene tipos es
-- la predeterminada para los demás. Texto con variables {cliente},
-- {numero_control}… (ver PlantillaCorreo::VARIABLES).
--
-- Respaldo previo: no hace falta (tabla nueva).
-- Reversa: database/rollback/2026-10-22_04_plantillas_correo.sql
-- ═══════════════════════════════════════════════════════════════════════

USE tinsa_db;

CREATE TABLE facturacion_plantilla_correo (
  id                INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  nombre            VARCHAR(100) NOT NULL,
  tipos             VARCHAR(60)  DEFAULT NULL COMMENT 'tipos DTE separados por coma; NULL = predeterminada',
  asunto            VARCHAR(250) NOT NULL,
  cuerpo            MEDIUMTEXT   NOT NULL COMMENT 'HTML limpio (PlantillaCorreo::limpiar) con variables {…}',
  usuario_modifico  INT(10) UNSIGNED DEFAULT NULL,
  created_at        TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updated_at        TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  UNIQUE KEY uq_plantilla_correo_nombre (nombre),
  CONSTRAINT fk_plantilla_correo_usuario FOREIGN KEY (usuario_modifico) REFERENCES usuarios (id_usuario) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO facturacion_plantilla_correo (nombre, tipos, asunto, cuerpo) VALUES
('Predeterminada', NULL,
 '{tipo_documento} {numero_control} · {empresa}',
 '<p>Estimado cliente <b>{cliente}</b>:</p><p>Le enviamos su documento tributario electrónico (<b>{tipo_documento}</b>) emitido por <b>{empresa}</b>. Adjuntamos la representación gráfica (PDF) y el documento electrónico (JSON).</p>{aviso_anulacion}{tabla_datos}<p>Puede verificarlo en el portal de Hacienda: {enlace_consulta}.</p><p>{empresa} · {telefono_empresa} · {correo_empresa}</p>');
