<?php
/**
 * Fichier  : api/lang.php
 * Auteur   : KREMER Régis
 * Version  : 2.6.70
 * Date     : 2026-07-11
 * Description : API — Fichiers de traduction et préférence linguistique utilisateur
 *
 * Changelog :
 *   v2.6.70 (2026-07-11) — I18N CORE LOCALE CURRENCY1 : langues centralisées et cookie compatible APP_BASE_PATH.
 */
require_once __DIR__.'/../config.php';

$SUPPORTED = appSupportedLanguages();
$method = $_SERVER['REQUEST_METHOD'] ?? 'GET';

if($method === 'GET'){
    // Langue demandée ou préférence user ou 'fr'
    $lang = $_GET['lang'] ?? '';
    if(!in_array($lang, $SUPPORTED, true)){
        // Essayer la préférence session
        startSession();
        $u = currentUser();
        $lang = $u['lang'] ?? 'fr';
        if(!in_array($lang, $SUPPORTED, true)) $lang = 'fr';
    }

    $file = __DIR__.'/../lang/'.basename($lang).'.json';
    if(!file_exists($file)) $file = __DIR__.'/../lang/fr.json';

    $json = file_get_contents($file);
    if($json === false) jsonError('Fichier langue introuvable', 404);

    header('Content-Type: application/json; charset=UTF-8');
    header('Cache-Control: public, max-age=3600');
    echo $json;
    exit;
}

if($method === 'POST'){
    startSession();
    requireAuth();
    csrfCheck();

    $body = json_decode(file_get_contents('php://input'), true) ?? [];
    $lang = trim($body['lang'] ?? '');

    if(!in_array($lang, $SUPPORTED, true)){
        jsonError('Langue non supportée', 400);
    }

    // Sauvegarder sur le user courant
    $users = loadData('users');
    $uid   = (int)($_SESSION['user_id'] ?? 0);
    $saved = false;
    foreach($users as &$u){
        if((int)($u['id'] ?? 0) === $uid){
            $u['lang'] = $lang;
            $saved = true;
            break;
        }
    }
    unset($u);
    if($saved) saveData('users', $users);

    // Cookie 1 an
    setcookie('sm_lang', $lang, [
        'expires' => time()+31536000,
        'path' => appCookiePath(),
        'secure' => appRequestIsSecure(),
        'httponly' => false,
        'samesite' => 'Lax',
    ]);
    $_SESSION['sm_lang'] = $lang;

    jsonResponse(['ok' => true, 'lang' => $lang]);
}

jsonError('Méthode non supportée', 405);
