<?php
require_once dirname(__DIR__) . '/_app_guard.php';
app_guard_validate();
header("Content-Type: application/json; charset=UTF-8");

$cfgFile = dirname(__DIR__) . "/check_update.json";

function default_update_config(): array {
    return [
        "status" => "ok",
        "tv" => [
            "version_code" => 2,
            "titulo" => "Atualização disponível",
            "mensagem" => "Nova versão com melhorias de desempenho, correções e novos recursos.",
            "apk_url" => "https://wave.thefull.site/tv.apk",
            "force" => true
        ],
        "mobile" => [
            "version_code" => 1,
            "titulo" => "Atualização disponível",
            "mensagem" => "Nova versão com melhorias de desempenho, correções e novos recursos.",
            "apk_url" => "",
            "force" => false
        ]
    ];
}

function normalize_update_config($data): array {
    $default = default_update_config();
    if (!is_array($data)) return $default;

    if (isset($data["tv"]) || isset($data["mobile"])) {
        $out = $default;
        foreach (["tv", "mobile"] as $key) {
            if (isset($data[$key]) && is_array($data[$key])) {
                $out[$key] = array_merge($out[$key], $data[$key]);
                $out[$key]["version_code"] = (int)($out[$key]["version_code"] ?? 1);
                $out[$key]["force"] = !empty($out[$key]["force"]);
            }
        }
        return $out;
    }

    $default["tv"] = [
        "version_code" => (int)($data["version_code"] ?? $default["tv"]["version_code"]),
        "titulo" => (string)($data["titulo"] ?? $default["tv"]["titulo"]),
        "mensagem" => (string)($data["mensagem"] ?? $default["tv"]["mensagem"]),
        "apk_url" => (string)($data["apk_url"] ?? $default["tv"]["apk_url"]),
        "force" => !empty($data["force"])
    ];
    return $default;
}

if (!file_exists($cfgFile)) {
    file_put_contents($cfgFile, json_encode(default_update_config(), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));
}

$data = normalize_update_config(json_decode((string)file_get_contents($cfgFile), true));

$deviceType = strtolower(trim((string)($_REQUEST["device_type"] ?? "")));
$deviceKey = in_array($deviceType, ["mobile", "celular", "phone", "android"], true) ? "mobile" : ($deviceType === "tv" ? "tv" : "");

if ($deviceKey !== "") {
    echo json_encode(array_merge(["status" => "ok", "device_type" => $deviceKey], $data[$deviceKey]), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
    exit;
}

$legacy = array_merge(["status" => "ok"], $data["tv"], ["tv" => $data["tv"], "mobile" => $data["mobile"]]);
echo json_encode($legacy, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
