<?php
// delete_article.php - Artikel löschen
// KORREKTUR: Berechtigungsprüfung für Haushaltsmitglieder hinzugefügt.

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

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

require_once 'db_connect.php';

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

if ($article_id_to_delete > 0) {
    // Lade Haushalts-ID des aktuellen Benutzers
    $stmt_user_household = $conn->prepare("SELECT household_id FROM users WHERE id = ?");
    $stmt_user_household->bind_param("i", $current_user_id);
    $stmt_user_household->execute();
    $current_user_household_id = $stmt_user_household->get_result()->fetch_assoc()['household_id'];
    $stmt_user_household->close();
    
    // Artikeldetails abrufen, um user_id und household_id zu prüfen
    $stmt_check = $conn->prepare("SELECT user_id, household_id FROM articles WHERE id = ?");
    $stmt_check->bind_param("i", $article_id_to_delete);
    $stmt_check->execute();
    $result_check = $stmt_check->get_result();

    if ($result_check->num_rows == 1) {
        $article = $result_check->fetch_assoc();
        
        $can_delete = false;
        $is_owner = ($article['user_id'] == $current_user_id);
        $is_household_article = !empty($article['household_id']) && $article['household_id'] == $current_user_household_id;

        if ($is_owner || $is_household_article) {
            $can_delete = true;
        }

        if ($can_delete) {
            $stmt_delete = $conn->prepare("DELETE FROM articles WHERE id = ?");
            $stmt_delete->bind_param("i", $article_id_to_delete);
            if ($stmt_delete->execute()) {
                $_SESSION['message'] = '<div class="alert alert-success" role="alert">Artikel erfolgreich gelöscht!</div>';
            } else {
                $_SESSION['message'] = '<div class="alert alert-danger" role="alert">Fehler beim Löschen des Artikels: ' . $stmt_delete->error . '</div>';
            }
            $stmt_delete->close();
        } else {
            $_SESSION['message'] = '<div class="alert alert-danger" role="alert">Sie sind nicht berechtigt, diesen Artikel zu löschen.</div>';
        }
    } else {
        $_SESSION['message'] = '<div class="alert alert-warning" role="alert">Artikel nicht gefunden.</div>';
    }
    $stmt_check->close();
} else {
    $_SESSION['message'] = '<div class="alert alert-danger" role="alert">Keine Artikel-ID zum Löschen angegeben.</div>';
}

$conn->close();

// Zurück zur Artikelliste
header("Location: articles.php");
exit;
?>
