-- ============================================================
--  Rollback de 2026-10-09_01_permisos_especiales.sql
--  Vuelven las columnas en usuarios con el permiso EFECTIVO de cada uno.
-- ============================================================
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 SET
  u.es_gerente_ventas = COALESCE(
    (SELECT up.activo FROM usuario_permiso_especial up WHERE up.id_usuario = u.id_usuario AND up.clave = 'gerente_ventas'),
    EXISTS (SELECT 1 FROM usuario_roles ur JOIN rol_permiso_especial rp ON rp.id_rol = ur.id_rol
             WHERE ur.id_usuario = u.id_usuario AND rp.clave = 'gerente_ventas')),
  u.es_cotizador = COALESCE(
    (SELECT up.activo FROM usuario_permiso_especial up WHERE up.id_usuario = u.id_usuario AND up.clave = 'cotizador'),
    EXISTS (SELECT 1 FROM usuario_roles ur JOIN rol_permiso_especial rp ON rp.id_rol = ur.id_rol
             WHERE ur.id_usuario = u.id_usuario AND rp.clave = 'cotizador'));

DROP TABLE IF EXISTS `usuario_permiso_especial`;
DROP TABLE IF EXISTS `rol_permiso_especial`;

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';
