<?php
/**
 * api/lang.php — Serveur de fichiers de traduction
 * GET  ?lang=fr  → retourne le JSON de la langue
 * POST {lang}    → sauvegarde la préférence langue de l'utilisateur connecté
 */
require_once __DIR__.'/../config.php';

$SUPPORTED = ['fr','en','de','es','it','nl','pt','pl','ru','tr','ar','ja','ko','zh','hi','id','uk'];
$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, time()+31536000, '/', '', false, false);
    $_SESSION['sm_lang'] = $lang;

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

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