-- =====================================================================
--  SORC CONTRACTS  |  Seeds + datos de prueba
--  Password del admin demo: Admin#2026  (cámbialo en producción)
-- =====================================================================

-- Roles
INSERT INTO roles (clave, nombre) VALUES
  ('admin',      'Administrador'),
  ('rh',         'Recursos Humanos'),
  ('supervisor', 'Supervisor'),
  ('consulta',   'Consulta')
ON DUPLICATE KEY UPDATE nombre = VALUES(nombre);

-- Permisos granulares
INSERT INTO permisos (clave, descripcion) VALUES
  ('dashboard.ver',        'Ver dashboard'),
  ('empleados.ver',        'Ver empleados'),
  ('empleados.sync',       'Sincronizar empleados desde SORC'),
  ('contratos.ver',        'Ver contratos'),
  ('contratos.generar',    'Generar contratos'),
  ('contratos.enviar',     'Enviar contratos'),
  ('contratos.cancelar',   'Cancelar contratos'),
  ('firmas.ver',           'Ver evidencia de firma'),
  ('alertas.ver',          'Ver alertas'),
  ('auditoria.ver',        'Ver auditoría'),
  ('usuarios.gestionar',   'Gestionar usuarios'),
  ('roles.gestionar',      'Gestionar roles y permisos'),
  ('config.gestionar',     'Gestionar configuración')
ON DUPLICATE KEY UPDATE descripcion = VALUES(descripcion);

-- Admin: todos los permisos
INSERT INTO rol_permisos (rol_id, permiso_id)
SELECT r.id, p.id FROM roles r CROSS JOIN permisos p
WHERE r.clave = 'admin'
ON DUPLICATE KEY UPDATE rol_id = rol_id;

-- RH
INSERT INTO rol_permisos (rol_id, permiso_id)
SELECT r.id, p.id FROM roles r JOIN permisos p
  ON p.clave IN ('dashboard.ver','empleados.ver','empleados.sync','contratos.ver',
                 'contratos.generar','contratos.enviar','contratos.cancelar',
                 'firmas.ver','alertas.ver','auditoria.ver')
WHERE r.clave = 'rh'
ON DUPLICATE KEY UPDATE rol_id = rol_id;

-- Supervisor
INSERT INTO rol_permisos (rol_id, permiso_id)
SELECT r.id, p.id FROM roles r JOIN permisos p
  ON p.clave IN ('dashboard.ver','empleados.ver','contratos.ver','firmas.ver','alertas.ver')
WHERE r.clave = 'supervisor'
ON DUPLICATE KEY UPDATE rol_id = rol_id;

-- Consulta
INSERT INTO rol_permisos (rol_id, permiso_id)
SELECT r.id, p.id FROM roles r JOIN permisos p
  ON p.clave IN ('dashboard.ver','contratos.ver')
WHERE r.clave = 'consulta'
ON DUPLICATE KEY UPDATE rol_id = rol_id;

-- Empresa demo
INSERT INTO empresas (razon_social, rfc, domicilio)
VALUES ('Empresa Demo SA de CV', 'XAXX010101000', 'Av. Reforma 100, CDMX')
ON DUPLICATE KEY UPDATE razon_social = VALUES(razon_social);

-- Usuario admin demo  (hash bcrypt de 'Admin#2026')
INSERT INTO usuarios (nombre, email, password_hash, rol_id, empresa_id, activo)
SELECT 'Administrador', 'admin@demo.local',
       '$2y$12$MFmE8x/YqUBHyeeQyoiejuoLQz7W9RJ.G0tOjiskLp0jTu1D9V3jK',
       r.id, e.id, 1
FROM roles r, empresas e
WHERE r.clave = 'admin' AND e.razon_social = 'Empresa Demo SA de CV'
LIMIT 1
ON DUPLICATE KEY UPDATE nombre = VALUES(nombre);
