<?php
// Učitaj environment varijable
if (file_exists(dirname(__DIR__) . '/.env')) {
    if (class_exists('Dotenv\Dotenv')) {
        // Ako je php-dotenv instaliran
        $dotenv = Dotenv\Dotenv::createImmutable(dirname(__DIR__));
        $dotenv->load();
    } else {
        // Koristi internu implementaciju
        require_once __DIR__ . '/dotenv.php';
        loadEnv(dirname(__DIR__) . '/.env');
    }
}

// Osnovna konfiguracija
define('BASE_PATH', dirname(dirname(__FILE__)));
define('SITE_URL', getenv('SITE_URL') ?: 'https://hugong-aparati.rs');
define('ADMIN_URL', SITE_URL . '/admin');
define('UPLOADS_PATH', BASE_PATH . '/uploads');
define('UPLOADS_URL', getenv('UPLOADS_URL') ?: (SITE_URL . '/uploads'));

// Database konfiguracija
define('DB_HOST', getenv('DB_HOST') ?: 'localhost');
define('DB_USER', getenv('DB_USER') ?: 'root');
define('DB_PASS', getenv('DB_PASS') ?: '');
define('DB_NAME', getenv('DB_NAME') ?: 'hugongshop');

// Podešavanja sesije
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

// Vremenska zona
date_default_timezone_set('Europe/Belgrade');

// Postavke za prikaz grešaka (postaviti na false u produkciji)
// Podešavanje za rukovanje greškama prema okruženju
if ($_SERVER['SERVER_NAME'] === 'localhost' || strpos($_SERVER['SERVER_NAME'], 'test.') === 0) {
    // Razvojno okruženje - prikaži sve greške
    ini_set('display_errors', true);
    error_reporting(E_ALL);
} else {
    // Produkcijsko okruženje - sakrij greške, logiraj ih
    ini_set('display_errors', false);
    error_reporting(E_ALL);
    ini_set('log_errors', true);
    ini_set('error_log', dirname(__DIR__) . '/logs/php_errors.log');
    
    // Kreiraj logs direktorijum ako ne postoji
    $log_dir = dirname(__DIR__) . '/logs';
    if (!is_dir($log_dir)) {
        mkdir($log_dir, 0755, true);
    }
}

// Funkcija za učitavanje postavki iz baze
function get_setting($key, $default = '') {
    global $conn;
    $stmt = $conn->prepare("SELECT setting_value FROM settings WHERE setting_key = ?");
    $stmt->execute([$key]);
    $result = $stmt->fetch(PDO::FETCH_ASSOC);
    
    return $result ? $result['setting_value'] : $default;
}

// Funkcija za ažuriranje postavki
function update_setting($key, $value) {
    global $conn;
    $stmt = $conn->prepare("INSERT INTO settings (setting_key, setting_value) VALUES (?, ?) 
                           ON DUPLICATE KEY UPDATE setting_value = ?");
    return $stmt->execute([$key, $value, $value]);
}