<?php
// partials/structure/app_config.php

// Host-Infos ermitteln (für URLs / Redirects etc.)
$scheme     = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http';
$host       = $_SERVER['HTTP_HOST'] ?? app_primary_domain();
$requestUri = $_SERVER['REQUEST_URI'] ?? '/';

// -----------------------------------------------
// USBCheck JavaScript-Konfiguration
// (für fakecheck.*, header.js, i18n, usw.)
// -----------------------------------------------
$usbConfig = [
    'lang'        => $lang ?? 'en',

    // Basis-Pfade
    'assetsBase'  => '/assets',

    // Versionierung für JS/CSS
    // → wenn ASSET_VERSION definiert ist, wird sie genutzt
    // → sonst null (JS-Loader sorgt für ?v= fallback)
    'assetVersion'=> defined('ASSET_VERSION') ? ASSET_VERSION : null,

    // Environment (prod, staging, dev)
    'env'         => $GLOBALS['ENV'] ?? 'prod',

    // Domains
    'domains'     => [
        'primaryDomain'   => app_primary_domain(),
        'primaryUrl'      => app_primary_url(),
        'fakecheckDomain' => app_fakecheck_domain(),
        'fakecheckUrl'    => app_fakecheck_url(),
    ],

    // Fakecheck-Tool-Config
    'fakecheck' => [
        'baseUrl'    => $GLOBALS['usb_base_url']  ?? '',
        'apiBaseUrl' => $GLOBALS['usb_api_base']  ?? 'https://api.usbcheck.it',
        'locale'     => $lang ?? 'en',
    ],

    // -----------------------------------------------
    // i18n: aus fileload.php gefüllt
    // -----------------------------------------------
    'i18n' => [
        // Alle verfügbaren Sprachen (code, label, flag)
        'available' => $availableLangs ?? [],

        // Aktuelle Sprache als Code (de/en/fr/it …)
        'current'   => $lang ?? 'en',
    ],
];

// -----------------------------------------------
// Javascript-Konfiguration in die Seite schreiben
// -----------------------------------------------
?>
<script>
    window.usbConfig = <?= json_encode(
        $usbConfig,
        JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_INVALID_UTF8_SUBSTITUTE
    ) ?>;
</script>
