<?php
require_once '../../includes/config.php';
require_once '../../includes/db.php';
require_once '../../includes/functions.php';
require_once '../includes/admin-functions.php';

// Provera da li je korisnik prijavljen kao admin
if (!is_admin()) {
    header('Location: /admin/login.php');
    exit;
}

// Provera da li je prosleđen ID kategorije
$category_id = isset($_GET['id']) ? intval($_GET['id']) : 0;

if ($category_id <= 0) {
    header('Location: /admin/categories/');
    exit;
}

// Dohvatanje podataka o kategoriji
$category = get_row("SELECT * FROM categories WHERE id = ?", [$category_id]);

if (!$category) {
    $_SESSION['error_message'] = 'Kategorija nije pronađena.';
    header('Location: /admin/categories/');
    exit;
}

// Provera da li postoje podkategorije
$has_subcategories = get_row("SELECT COUNT(*) as count FROM categories WHERE parent_id = ?", [$category_id])['count'] > 0;

if ($has_subcategories) {
    $_SESSION['error_message'] = 'Nije moguće obrisati kategoriju koja ima podkategorije. Prvo obrišite ili premestite podkategorije.';
    header('Location: /admin/categories/');
    exit;
}

// Provera da li postoje proizvodi u ovoj kategoriji
$product_count = get_row("SELECT COUNT(*) as count FROM product_categories WHERE category_id = ?", [$category_id])['count'];

// Obrada zahteva za brisanje
try {
    $conn->beginTransaction();
    
    // Brisanje veza između kategorije i proizvoda
    if ($product_count > 0) {
        execute_query("DELETE FROM product_categories WHERE category_id = ?", [$category_id]);
    }
    
    // Brisanje slike kategorije ako postoji
    if (!empty($category['image'])) {
        $image_path = UPLOADS_PATH . '/categories/' . $category['image'];
        if (file_exists($image_path)) {
            unlink($image_path);
        }
    }
    
    // Brisanje kategorije
    execute_query("DELETE FROM categories WHERE id = ?", [$category_id]);
    
    $conn->commit();
    
    $_SESSION['success_message'] = 'Kategorija je uspešno obrisana.';
} catch (Exception $e) {
    $conn->rollBack();
    $_SESSION['error_message'] = 'Došlo je do greške prilikom brisanja kategorije: ' . $e->getMessage();
}

// Preusmeravanje nazad na listu kategorija
header('Location: /admin/categories/');
exit;