<?php
/**
 * POST /api/lab/delete_role.php
 * Elimina un rol no-sistema.
 * Solo admins.
 *
 * Body JSON: { id }
 */
require_once __DIR__ . '/_helpers.php';
requireMethod('POST');
requireAdmin();

$body = inputJson();
$id   = (int)($body['id'] ?? 0);
if (!$id) jsonError('ID de rol requerido');

$db   = Database::getInstance();
$role = $db->fetch("SELECT id, is_system, slug FROM roles WHERE id = ?", [$id]);
if (!$role) jsonError('Rol no encontrado', 404);
if ($role['is_system']) jsonError('Los roles del sistema no se pueden eliminar');

// Reasignar usuarios que tengan este rol al rol admin (id=1) antes de borrar
$db->query("UPDATE admin_users SET role_id = 1, role = 'admin' WHERE role_id = ?", [$id]);

// La FK ON DELETE CASCADE borra role_modules automáticamente
$db->query("DELETE FROM roles WHERE id = ?", [$id]);

jsonOk([], 'Rol eliminado. Los usuarios afectados fueron reasignados al rol Administrador.');
