-- ============================================================
--  Migración 2026-10-16_01 · Plantillas de cotización
-- ------------------------------------------------------------
--  La cotización impresa de una oferta pasa a ser el "Editor de
--  cotización" (hojas carta paginadas, monto en letras, cheque/cuenta,
--  firmas, hoja de aceptación), adaptado del editor.html de la raíz.
--  Su aspecto lo da una PLANTILLA que se administra con vista previa en
--  Ventas → Plantillas de cotización (/ventas/plantillas).
--  plantilla_cotizacion.config: JSON con nombre legal, textos (cheque,
--    cuenta, cargo del asesor, lema y pie), letra y tamaños, colores y la
--    posición/tamaño (mm) de los logos de encabezado, pie y marca de agua.
--    Los logos son rutas relativas a public/ (uploads/plantillas/...).
--  predeterminada: la que se usa al imprimir (se puede cambiar al imprimir).
--  Semilla: la plantilla de TINSA del editor, con los logos del sistema
--  anterior copiados en public/uploads/plantillas/.
-- ============================================================
USE tinsa_db;

CREATE TABLE `plantilla_cotizacion` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `nombre` varchar(120) NOT NULL,
  `config` text NOT NULL,
  `estilo_tabla` enum('clasica','moderna') NOT NULL DEFAULT 'clasica',
  `predeterminada` tinyint(1) NOT NULL DEFAULT 0,
  `activo` tinyint(1) NOT NULL DEFAULT 1,
  `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(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `uq_plantilla_cotizacion_nombre` (`nombre`),
  KEY `fk_plc_usuario` (`usuario_modifico`),
  CONSTRAINT `fk_plc_usuario` FOREIGN KEY (`usuario_modifico`) REFERENCES `usuarios` (`id_usuario`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

INSERT INTO plantilla_cotizacion (nombre, config, estilo_tabla, predeterminada) VALUES
('TINSA (por defecto)', '{"nombreLegal":"GRUPO TINSA S.A. de C.V.","lemaEncabezado":"Fachadas y envolventes arquitectónicas","textoPie":"San Salvador, El Salvador","fontFamily":"ARIAL","fontSizeTitulo":15,"fontSizeLabel":10,"fontSizeTexto":10,"fontSizeTablaHeader":9,"fontSizeTablaBody":9,"fontSizeTotales":9,"fontSizeCifraLetras":8,"logoEncabezado":"uploads/plantillas/cotizacion-encabezado.png","logoEncabezadoX":0,"logoEncabezadoY":-1,"logoEncabezadoAncho":216,"logoEncabezadoAlto":42,"logoPie":"uploads/plantillas/cotizacion-pie.png","logoPieX":0,"logoPieY":250,"logoPieAncho":216,"logoPieAlto":35,"logoMedio":"uploads/plantillas/cotizacion-medio-dts.png","logoMedioX":5,"logoMedioY":10,"logoMedioAncho":200,"logoMedioAlto":300,"textoChequeA":"EMITIR CHEQUE A NOMBRE DE: GRUPO TINSA S.A de C.V","textoCuentaBancaria":"CUENTA DE BAC CREDOMATIC: 201328028  -  Cuenta Corriente","textoCargoAsesor":"ASESOR TÉCNICO COMERCIAL","colorEnc":"#000C77","colorEnc2":"#0012A0","colorPie":"#000C77","colorAcento":"#FF8C00","colorThead":"#EDEFF4","colorLinea":"#333333"}', 'clasica', 1);

-- Pestaña en Ventas; de entrada solo el Administrador
INSERT INTO pestanas (id_modulo, nombre, ruta, icono, orden, estado)
SELECT m.id, 'Plantillas de cotización', '/ventas/plantillas', 'fa-file-invoice', 4, 1
  FROM modulos m WHERE m.nombre = 'Ventas';

INSERT INTO permisos_roles (id_rol, id_pestana, puede_leer, puede_escribir, puede_eliminar)
SELECT r.id, p.id, 1, 1, 1
  FROM roles r JOIN pestanas p ON p.ruta = '/ventas/plantillas'
 WHERE r.nombre = 'Administrador';
