<?php
declare(strict_types=1);

require_once __DIR__ . '/../../conexion.php';
require_once __DIR__ . '/../../_helpers.php';
require_once __DIR__ . '/../../auth/guard.php';

$u = require_login();
require_admin($u);

$in = read_input();
$rut = normalize_rut((string)($in['rut'] ?? ''));

if ($rut === '') json_response(["ok" => false, "message" => "RUT inválido."], 400);

try {
  $stmt = $pdo->prepare("DELETE FROM funcionario WHERE rut = ?");
  $stmt->execute([$rut]);
  fp_log_activity($pdo, $u, 'Configuración', 'Eliminar funcionario', 'Se eliminó el funcionario RUT ' . $rut, 'funcionario', $rut);
  json_response(["ok" => true]);
} catch (Throwable $e) {
  if ((int)($e->errorInfo[1] ?? 0) === 1451) {
    json_response(["ok" => false, "message" => "No se puede eliminar: el funcionario tiene registros asociados."], 409);
  }
  error_log("FUNCIONARIOS DELETE ERROR: ".$e->getMessage());
  json_response(["ok" => false, "message" => "Error eliminando funcionario."], 500);
}
