-- ============================================================
--  Migración 2026-10-07_01 · Funciones de ventas por usuario
-- ------------------------------------------------------------
--  Se marcan en Administración → Usuarios → Roles y permisos:
--   es_gerente_ventas: al crear/editar una solicitud de cotización
--     puede designar el asesor comercial (el Administrador siempre puede).
--   es_cotizador: aparece en la lista de cotizadores que se asignan a
--     una solicitud; solo el cotizador asignado (o un administrador)
--     arma el presupuesto.
--  Precarga: quienes tienen el rol "Gerente de ventas" y quienes ya
--  presupuestaron alguna cotización.
-- ============================================================
USE tinsa_db;

ALTER TABLE `usuarios`
  ADD COLUMN `es_gerente_ventas` tinyint(1) NOT NULL DEFAULT 0 AFTER `activo`,
  ADD COLUMN `es_cotizador` tinyint(1) NOT NULL DEFAULT 0 AFTER `es_gerente_ventas`;

UPDATE usuarios u
  JOIN usuario_roles ur ON ur.id_usuario = u.id_usuario
  JOIN roles r          ON r.id = ur.id_rol AND r.nombre = 'Gerente de ventas'
   SET u.es_gerente_ventas = 1;

UPDATE usuarios u
   SET u.es_cotizador = 1
 WHERE EXISTS (SELECT 1 FROM cotizacion_venta cv WHERE cv.id_usuario_cotizador = u.id_usuario);

UPDATE roles
   SET descripcion = 'Pestañas de ventas (ve todos los clientes). Designar asesor se activa en el usuario: "Gerente de ventas"'
 WHERE nombre = 'Gerente de ventas';
