<?php
/**
 * Główna konfiguracja aplikacji
 */

// Tryb debugowania
define('DEBUG', true);

// Ścieżki
define('ROOT_PATH', dirname(dirname(__DIR__)));
define('PANEL_PATH', dirname(__DIR__));
define('DB_PATH', PANEL_PATH . '/db/playlist.db');
define('CACHE_PATH', PANEL_PATH . '/cache');
define('TEMPLATES_PATH', PANEL_PATH . '/templates');
define('LOGS_PATH', ROOT_PATH . '/logs');
define('BACKUPS_PATH', ROOT_PATH . '/backups');
define('UPLOADS_PATH', PANEL_PATH . '/uploads');

// Klucz szyfrowania API (taki sam jak w oryginalnym playlist.php)
define('API_ENCRYPTION_KEY', 'ar.tvplayer.tv.secret');

// Sesje
define('SESSION_NAME', 'playlist_panel');
define('SESSION_LIFETIME', 3600 * 24); // 24 godziny
define('SESSION_REMEMBER_LIFETIME', 3600 * 24 * 30); // 30 dni

// Bezpieczeństwo
define('CSRF_TOKEN_NAME', 'csrf_token');
define('BCRYPT_COST', 12);

// Rate limiting
define('LOGIN_RATE_LIMIT', 5); // max prób na minutę
define('API_RATE_LIMIT', 60); // max requestów na minutę

// Paginacja
define('ITEMS_PER_PAGE', 20);

// Timezone
date_default_timezone_set('Europe/Warsaw');

// Obsługa błędów
if (DEBUG) {
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
} else {
    error_reporting(0);
    ini_set('display_errors', 0);
}

// Autoloader dla Smarty (Composer lub standalone)
if (file_exists(ROOT_PATH . '/vendor/autoload.php')) {
    require_once ROOT_PATH . '/vendor/autoload.php';
}

// Fallback - standalone Smarty
if (!class_exists('Smarty')) {
    $smartyPaths = [
        ROOT_PATH . '/vendor/smarty/smarty/libs/Smarty.class.php',
        ROOT_PATH . '/vendor/smarty/Smarty.class.php',
        '/usr/share/php/smarty3/Smarty.class.php',
    ];
    
    foreach ($smartyPaths as $path) {
        if (file_exists($path)) {
            require_once $path;
            break;
        }
    }
}
