<?php
/**
 * POST — Admin guarda/borra la firma pre-configurada de cualquier usuario.
 * Body JSON: { user_id: 5, firma_svg: "data:image/png;base64,..." }
 *            { user_id: 5, _borrar: true }
 */
require_once __DIR__ . '/_helpers.php';
requireAdmin();

$body   = json_decode(file_get_contents('php://input'), true) ?? [];
$userId = (int)($body['user_id'] ?? 0);
if ($userId <= 0) jsonError('user_id requerido.');

$db = Database::getInstance()->getConnection();

if (!empty($body['_borrar'])) {
    $db->prepare("UPDATE admin_users SET firma_svg = NULL WHERE id = ?")->execute([$userId]);
    jsonOk(['mensaje' => 'Firma eliminada.']);
}

$svg = $body['firma_svg'] ?? '';
if (strlen($svg) < 100) jsonError('Firma requerida.');
if (!preg_match('/^data:image\/(svg\+xml|png|jpeg|webp);base64,/i', $svg)) {
    jsonError('Formato de firma no válido.');
}

$db->prepare("UPDATE admin_users SET firma_svg = ? WHERE id = ?")->execute([$svg, $userId]);
jsonOk(['mensaje' => 'Firma guardada correctamente.']);
