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

$fiche_id = filter_input(INPUT_GET, 'fiche_id', FILTER_VALIDATE_INT);
if (!$fiche_id) {
    header('Location: dashboard.php');
    exit;
}

$pdo = getPDO();

// Vérifier que la fiche existe et récupérer ses infos
$stmt = $pdo->prepare("SELECT id, createur_id, sous_dossier_id FROM fiches WHERE id = ? AND deleted_at IS NULL");
$stmt->execute([$fiche_id]);
$fiche = $stmt->fetch();
if (!$fiche) {
    $_SESSION['error'] = "Fiche introuvable ou supprimée.";
    header('Location: dashboard.php');
    exit;
}

// Vérifier les droits : superadmin, admin ou créateur
$peut_modifier = ($_SESSION['user_role'] === 'superadmin' || $_SESSION['user_role'] === 'admin' || $_SESSION['user_id'] == $fiche['createur_id']);
if (!$peut_modifier) {
    $_SESSION['error'] = "Vous n'avez pas les droits pour joindre un fichier à cette fiche.";
    header("Location: sous_dossier.php?id=" . $fiche['sous_dossier_id']);
    exit;
}

$error = '';
$success = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['fichier'])) {
    $file = $_FILES['fichier'];
    $allowed_types = ['application/pdf', 'image/jpeg', 'image/png', 'image/jpg'];
    $max_size = 5 * 1024 * 1024; // 5 Mo

    if ($file['error'] !== UPLOAD_ERR_OK) {
        $error = "Erreur lors de l'upload.";
    } elseif (!in_array($file['type'], $allowed_types)) {
        $error = "Type de fichier non autorisé. Utilisez PDF, JPG ou PNG.";
    } elseif ($file['size'] > $max_size) {
        $error = "Le fichier ne doit pas dépasser 5 Mo.";
    } else {
        $extension = pathinfo($file['name'], PATHINFO_EXTENSION);
        $filename = 'fiche_' . $fiche_id . '_' . time() . '.' . $extension;
        $upload_dir = 'uploads/fiches/';

        if (!is_dir($upload_dir)) mkdir($upload_dir, 0755, true);

        $path = $upload_dir . $filename;
        if (move_uploaded_file($file['tmp_name'], $path)) {
            // Supprimer l'ancien fichier s'il existe
            $stmt = $pdo->prepare("SELECT pdf_path FROM fiches WHERE id = ?");
            $stmt->execute([$fiche_id]);
            $old = $stmt->fetchColumn();
            if ($old && file_exists($old)) unlink($old);

            $stmt = $pdo->prepare("UPDATE fiches SET pdf_path = ? WHERE id = ?");
            $stmt->execute([$path, $fiche_id]);

            logAction($pdo, $_SESSION['user_id'], 'upload_fichier_fiche', "Fiche $fiche_id, fichier $filename");
            $_SESSION['success'] = "Fichier attaché avec succès.";
            header("Location: fiche_view.php?id=$fiche_id");
            exit;
        } else {
            $error = "Erreur lors de la sauvegarde du fichier.";
        }
    }
}

require_once 'includes/header.php';
?>

<div class="row justify-content-center">
    <div class="col-md-6">
        <div class="card">
            <div class="card-header bg-primary text-white">
                <h5 class="mb-0"><i class="fas fa-paperclip me-2"></i>Attacher un fichier à la fiche</h5>
            </div>
            <div class="card-body">
                <?php if ($error): ?>
                    <div class="alert alert-danger"><?= $error ?></div>
                <?php endif; ?>
                <form method="post" enctype="multipart/form-data">
                    <div class="mb-3">
                        <label for="fichier" class="form-label">Sélectionnez un fichier (PDF, JPG, PNG, max 5 Mo)</label>
                        <input type="file" class="form-control" id="fichier" name="fichier" required accept=".pdf,.jpg,.jpeg,.png">
                    </div>
                    <div class="d-grid gap-2">
                        <button type="submit" class="btn btn-primary"><i class="fas fa-upload me-2"></i>Uploader</button>
                        <a href="fiche_view.php?id=<?= $fiche_id ?>" class="btn btn-outline-secondary">Annuler</a>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>

<?php require_once 'includes/footer.php'; ?>