<?php
require_once 'includes/auth.php';
require_once 'config/database.php';
require_once 'includes/functions.php';

header('Content-Type: application/json');

if (!in_array($_SESSION['user_role'], ['superadmin','admin'])) {
    echo json_encode(['success' => false, 'error' => 'Droits insuffisants.']);
    exit;
}

$fiche_id = filter_input(INPUT_POST, 'id', FILTER_VALIDATE_INT);
if (!$fiche_id) {
    echo json_encode(['success' => false, 'error' => 'ID invalide.']);
    exit;
}

$signature_path = $_SESSION['user_signature'] ?? null;
if (!$signature_path || !file_exists($signature_path)) {
    echo json_encode(['success' => false, 'error' => 'Vous n\'avez pas de signature enregistrée.']);
    exit;
}

$pdo = getPDO();

// Vérifier que la fiche existe, n'est pas supprimée et n'est pas déjà signée
$stmt = $pdo->prepare("SELECT id FROM fiches WHERE id = ? AND deleted_at IS NULL AND signature_responsable IS NULL");
$stmt->execute([$fiche_id]);
if (!$stmt->fetch()) {
    echo json_encode(['success' => false, 'error' => 'Fiche déjà signée ou introuvable.']);
    exit;
}

try {
    $stmt = $pdo->prepare("UPDATE fiches SET signature_responsable = ?, signature_responsable_date = NOW() WHERE id = ?");
    $stmt->execute([$signature_path, $fiche_id]);
    logAction($pdo, $_SESSION['user_id'], 'signature_fiche', "Fiche $fiche_id signée par responsable");
    echo json_encode(['success' => true]);
} catch (Exception $e) {
    echo json_encode(['success' => false, 'error' => $e->getMessage()]);
}