<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
set_time_limit(0); 

include 'db/koneksi.php';
include 'api/nexus.php'; 

header('Content-Type: text/html; charset=utf-8');

$providers = [
    'SPORTSBOOK',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    ''
];

echo "<h3>Memulai Proses Sinkronisasi Game List V2 (Auto-Detect)...</h3>";
echo "<hr>";

$total_inserted = 0;

$stmt = $koneksi->prepare("
    INSERT INTO tb_game 
    (provider_name, game_provider, game_name, game_code, game_type, game_image, game_status, seq, source) 
    VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
    ON DUPLICATE KEY UPDATE 
    game_name = VALUES(game_name),
    game_type = VALUES(game_type),
    game_image = VALUES(game_image),
    game_status = VALUES(game_status)
");

foreach ($providers as $provider_code) {
    echo "Mengambil data dari provider: <strong>{$provider_code}</strong>... ";
    
    $response_raw = $nx->get_games($provider_code);
    $response = json_decode($response_raw, true);
    
    // Cek apakah response berupa array JSON yang valid
    if (is_array($response)) {
        
        // 🔹 OTOMATIS MENCARI KEY DAFTAR GAME (Auto-Detect)
        $game_list = null;
        if (isset($response['game_list'])) {
            $game_list = $response['game_list'];
        } elseif (isset($response['data'])) {
            $game_list = $response['data'];
        } elseif (isset($response['games'])) {
            $game_list = $response['games'];
        } elseif (isset($response['list'])) {
            $game_list = $response['list'];
        } elseif (isset($response['status']) && count($response) > 2) {
            // Jika data game ditaruh langsung di array utama bersama 'status'
            $game_list = $response;
        }

        if (!empty($game_list) && is_array($game_list)) {
            $count = 0;
            
            foreach ($game_list as $index => $game) {
                // Lewati jika ini adalah key penanda status, bukan data game
                if (in_array($index, ['status', 'msg', 'message', 'code', 'error'])) {
                    continue;
                }

                // 🔹 PEMETAAN KEY DATA GAME (Mendukung Multi-Format API Nexus)
                $game_name  = $game['game_name'] ?? $game['name'] ?? $game['title'] ?? 'Unknown Game';
                $game_code  = $game['game_code'] ?? $game['code'] ?? $game['id'] ?? '';
                $game_type  = $game['game_type'] ?? $game['type'] ?? 'SB';
                
                // Mendukung key 'images', 'image', 'banner', atau 'game_image'
                $game_image = $game['images'] ?? $game['image'] ?? $game['game_image'] ?? $game['banner'] ?? ''; 
                
                $game_status = "1";
                $source      = "NEXUS";
                $seq         = $index + 1;
                
                if (empty($game_code)) {
                    continue; 
                }

                $stmt->bind_param(
                    "sssssssis", 
                    $provider_code, 
                    $provider_code, 
                    $game_name,     
                    $game_code,     
                    $game_type,     
                    $game_image,    
                    $game_status,   
                    $seq,           
                    $source         
                );
                
                $stmt->execute();
                $count++;
            }
            
            echo "<span style='color: green;'>Sukses mengimpor {$count} game.</span><br>";
            $total_inserted += $count;
            
        } else {
            // JIKA TETAP GAGAL: Munculkan 200 karakter isi JSON asli dari Nexus untuk kita intip kuncinya
            $cuplikan_json = htmlspecialchars(substr($response_raw, 0, 250));
            echo "<span style='color: orange;'>Gagal memetakan struktur data. Raw JSON: <code>{$cuplikan_json}...</code></span><br>";
        }
        
    } else {
        echo "<span style='color: red;'>API tidak mengembalikan format JSON yang valid.</span><br>";
    }
    
    usleep(300000); // jeda 0.3 detik
}

$stmt->close();
echo "<hr>";
echo "<h3>Proses Selesai! Total keseluruhan game berhasil diproses: {$total_inserted} Game.</h3>";
?>