<?php
if (!defined('APP_ROOT')) {
    define('APP_ROOT', __DIR__ . '/html');
}
if (!defined('FUNCTIONS_ROOT')) {
    define('FUNCTIONS_ROOT', __DIR__ . '/functions');
}
if (!defined('STORAGE_ROOT')) {
    define('STORAGE_ROOT', __DIR__ . '/storage');
}
if (!defined('WECKER_LOG_DIR')) {
    define('WECKER_LOG_DIR', __DIR__ . '/logs');
}
if (!defined('DatabaseDEBUG')) {
    define('DatabaseDEBUG', true);
}
if (!defined('LogDEBUG')) {
    define('LogDEBUG', true);
}

// Apache-Error-/Access-Log (für Debug-Errorlog-Viewer)
if (!defined('DEBUG_ERROR_LOG_PATH')) {
    define('DEBUG_ERROR_LOG_PATH', WECKER_LOG_DIR . '/error.log');
}

// Optionale Konstanten für Update-System (in functions_update.php mit Fallback)
if (!defined('UPDATE_SERVER')) {
    define('UPDATE_SERVER', 'https://update.piclock.cylone-network.com');
}
if (!defined('WECKER_VERSION')) {
    define('WECKER_VERSION', '0.0.0');
}

// Geheimer Schlüssel zur Verschlüsselung sensibler Einstellungen (z. B. OpenAI API-Key).
// Bitte in Produktion einen starken, zufälligen String setzen (z. B. 32+ Zeichen).
if (!defined('WECKER_SECRET_KEY')) {
    define('WECKER_SECRET_KEY', hash('sha256', __DIR__ . 'wecker_enc_v1'));
}


$dsn  = 'mysql:host=node03.team.the-network.cloud;port=3306;dbname=s199_Wecker;charset=utf8mb4';
$user = 'u199_EQoB44ynfW';
$pass = 'Fs.pT+CSlLrxkTi8f36eCKXf';

if (!isset($GLOBALS['pdo'])) {
try {
    $pdo = new PDO(
        $dsn,
        $user,
        $pass,
        [
            PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
            PDO::ATTR_EMULATE_PREPARES   => false,
        ]
    );
    $GLOBALS['pdo'] = $pdo;
} catch (Throwable $e) {
    error_log('[DB CONNECT ERROR] ' . $e->getMessage() . ' | DSN=' . $dsn);
    http_response_code(500);
    require APP_ROOT . '/errors/500.php';
    die;
}
}
if (isset($GLOBALS['pdo'])) {
    $pdo = $GLOBALS['pdo'];
}
