-- ============================================================
--  Migración 2026-10-06_02 · Roles de ventas
-- ------------------------------------------------------------
--  Gerente de ventas: al crear/editar una solicitud de cotización
--    puede designar el asesor comercial (igual que Administrador).
--    Con "eliminar" en Clientes ve todos los clientes y gestiona sus
--    asesores asignados. Lectura en Presupuesto para seguimiento.
--  Vendedor: el asesor comercial es siempre él mismo (se asigna
--    automáticamente). Solo ve los clientes que tiene asignados.
--  Ver CotizacionVentaController::puedeDesignarAsesor().
--  Los permisos se pueden ajustar luego desde Administración → Roles.
-- ============================================================
USE tinsa_db;

INSERT INTO roles (nombre, descripcion) VALUES
  ('Gerente de ventas', 'Ve todos los clientes y designa el asesor comercial de las cotizaciones'),
  ('Vendedor',          'Atiende sus clientes asignados; es el asesor de las cotizaciones que crea');

-- Gerente de ventas: Clientes y Cotizaciones completos, Presupuesto solo lectura
INSERT INTO permisos_roles (id_rol, id_pestana, puede_leer, puede_escribir, puede_eliminar)
SELECT r.id, p.id, 1,
       CASE WHEN p.ruta = '/presupuesto' THEN 0 ELSE 1 END,
       CASE WHEN p.ruta = '/presupuesto' THEN 0 ELSE 1 END
  FROM roles r
  JOIN pestanas p ON p.ruta IN ('/ventas/clientes', '/ventas/cotizaciones', '/presupuesto')
 WHERE r.nombre = 'Gerente de ventas';

-- Vendedor: Clientes y Cotizaciones con lectura y escritura (sin eliminar = solo sus clientes)
INSERT INTO permisos_roles (id_rol, id_pestana, puede_leer, puede_escribir, puede_eliminar)
SELECT r.id, p.id, 1, 1, 0
  FROM roles r
  JOIN pestanas p ON p.ruta IN ('/ventas/clientes', '/ventas/cotizaciones')
 WHERE r.nombre = 'Vendedor';
