<?php
// src/save_as_template.php - Speichert eine Packliste als Vorlage (Kopie)

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}
if (!isset($_SESSION['user_id'])) {
    header("Location: login.php");
    exit;
}

require_once 'db_connect.php';
require_once 'packing_list_utils.php';

$current_user_id = $_SESSION['user_id'];
$list_id = isset($_GET['id']) ? intval($_GET['id']) : 0;

if ($list_id <= 0) {
    header("Location: packing_lists.php");
    exit;
}

// Prüfen, ob Liste existiert und User Zugriff hat
$stmt = $conn->prepare("SELECT name, description, household_id FROM packing_lists WHERE id = ? AND (user_id = ? OR household_id = (SELECT household_id FROM users WHERE id = ?))");
// Eigentlich darf nur Owner oder Household-Admin kopieren? Lassen wir es für alle mit Lesezugriff zu.
$stmt->bind_param("iii", $list_id, $current_user_id, $current_user_id);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows === 0) {
    $_SESSION['message'] = '<div class="alert alert-danger">Packliste nicht gefunden oder keine Berechtigung.</div>';
    header("Location: packing_lists.php");
    exit;
}
$list = $result->fetch_assoc();
$stmt->close();

$new_name = "Vorlage: " . $list['name'];

// Neue Liste (Template) anlegen
$stmt_insert = $conn->prepare("INSERT INTO packing_lists (user_id, household_id, name, description, is_template) VALUES (?, ?, ?, ?, 1)");
$stmt_insert->bind_param("isss", $current_user_id, $list['household_id'], $new_name, $list['description']);

if ($stmt_insert->execute()) {
    $new_template_id = $conn->insert_id;
    try {
        copyPackingListContent($list_id, $new_template_id, $conn);
        $_SESSION['message'] = '<div class="alert alert-success">Packliste erfolgreich als Vorlage gespeichert! Du findest sie im Tab "Vorlagen".</div>';
    } catch (Exception $e) {
        // Aufräumen bei Fehler wäre gut, aber hier einfach Fehler melden
        $_SESSION['message'] = '<div class="alert alert-warning">Vorlage erstellt, aber Inhalt konnte nicht vollständig kopiert werden: ' . $e->getMessage() . '</div>';
    }
} else {
    $_SESSION['message'] = '<div class="alert alert-danger">Fehler beim Erstellen der Vorlage: ' . $conn->error . '</div>';
}

header("Location: packing_lists.php?view=templates");
exit;
?>
