<?php
require_once '../includes/auth.php';
if (!checkPermission('admin')) {
    header('Location: ../dashboard.php');
    exit;
}
require_once '../config/database.php';
require_once '../includes/functions.php';

$pdo = getPDO();
$error = '';
$sous_dossier_id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
if (!$sous_dossier_id) {
    header('Location: gestion_projets.php');
    exit;
}

$stmt = $pdo->prepare("SELECT sd.*, d.nom as dossier_nom, p.nom as projet_nom FROM sous_dossiers sd JOIN dossiers d ON sd.dossier_id = d.id JOIN projets p ON d.projet_id = p.id WHERE sd.id = ?");
$stmt->execute([$sous_dossier_id]);
$sous_dossier = $stmt->fetch();
if (!$sous_dossier) {
    header('Location: gestion_projets.php');
    exit;
}

$templates_lib = $pdo->query("SELECT id, nom FROM templates_library ORDER BY nom")->fetchAll();

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $nom = trim($_POST['nom'] ?? '');
    $template_lib_id = filter_input(INPUT_POST, 'template_lib_id', FILTER_VALIDATE_INT);
    if (empty($nom)) {
        $error = "Le nom est requis.";
    } else {
        // Vérifier unicité
        $stmt = $pdo->prepare("SELECT id FROM sous_dossiers WHERE dossier_id = ? AND nom = ? AND id != ?");
        $stmt->execute([$sous_dossier['dossier_id'], $nom, $sous_dossier_id]);
        if ($stmt->fetch()) {
            $error = "Un sous-dossier avec ce nom existe déjà dans ce dossier.";
        } else {
            try {
                $pdo->beginTransaction();
                $stmt = $pdo->prepare("UPDATE sous_dossiers SET nom = ?, template_library_id = ? WHERE id = ?");
                $stmt->execute([$nom, $template_lib_id, $sous_dossier_id]);
                // Si un template est sélectionné, on écrase le template actuel du sous-dossier
                if ($template_lib_id) {
                    $stmt = $pdo->prepare("SELECT contenu_template FROM templates_library WHERE id = ?");
                    $stmt->execute([$template_lib_id]);
                    $template_json = $stmt->fetchColumn();
                    $stmt = $pdo->prepare("UPDATE templates SET contenu_template = ? WHERE sous_dossier_id = ?");
                    $stmt->execute([$template_json, $sous_dossier_id]);
                }
                $pdo->commit();
                logAction($pdo, $_SESSION['user_id'], 'modification_sous_dossier', "Sous-dossier ID $sous_dossier_id");
                $_SESSION['success'] = "Sous-dossier modifié.";
                header('Location: gestion_projets.php');
                exit;
            } catch (Exception $e) {
                $pdo->rollBack();
                $error = "Erreur : " . $e->getMessage();
            }
        }
    }
}

require_once '../includes/header.php';
?>
<div class="row justify-content-center">
    <div class="col-md-6">
        <div class="card">
            <div class="card-header bg-warning text-white">Modifier le sous-dossier</div>
            <div class="card-body">
                <p class="text-muted">Projet : <?= htmlspecialchars($sous_dossier['projet_nom']) ?> | Dossier : <?= htmlspecialchars($sous_dossier['dossier_nom']) ?></p>
                <?php if ($error): ?><div class="alert alert-danger"><?= $error ?></div><?php endif; ?>
                <form method="post">
                    <div class="mb-3">
                        <label for="nom" class="form-label">Nom du sous-dossier *</label>
                        <input type="text" class="form-control" id="nom" name="nom" value="<?= htmlspecialchars($sous_dossier['nom']) ?>" required>
                    </div>
                    <div class="mb-3">
                        <label for="template_lib_id" class="form-label">Template associé</label>
                        <select class="form-select" name="template_lib_id" id="template_lib_id">
                            <option value="">-- Aucun --</option>
                            <?php foreach ($templates_lib as $tpl): ?>
                                <option value="<?= $tpl['id'] ?>" <?= ($sous_dossier['template_library_id'] == $tpl['id']) ? 'selected' : '' ?>><?= htmlspecialchars($tpl['nom']) ?></option>
                            <?php endforeach; ?>
                        </select>
                        <small class="text-muted">Changer le template remplacera le contenu actuel du sous-dossier.</small>
                    </div>
                    <button type="submit" class="btn btn-warning">Enregistrer</button>
                    <a href="gestion_projets.php" class="btn btn-secondary">Annuler</a>
                </form>
            </div>
        </div>
    </div>
</div>
<?php require_once '../includes/footer.php'; ?>