<?php
/* fetch_navy.php – API обновления данных Navy
   Вызывается автоматически через JS или напрямую (можно добавить в cron)
   Обновляет: navy_cache.json и /factors/navy.json
*/

date_default_timezone_set('UTC');
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');

$cache_file = __DIR__ . '/navy_cache.json';
$factor_file = __DIR__ . '/factors/navy.json';
$factors_dir = __DIR__ . '/factors';

if (!is_dir($factors_dir)) mkdir($factors_dir, 0755, true);

// === ЗДЕСЬ ДОЛЖНА БЫТЬ ЛОГИКА ПОЛУЧЕНИЯ РЕАЛЬНЫХ ДАННЫХ ===
// Примеры источников:
// - API USNI Fleet Tracker
// - Парсинг MarineTraffic
// - Telegram OSINT боты
// - Ручной ввод через админку

// Для примера используем текущие данные + небольшую рандомизацию
$existing = [];
if (file_exists($cache_file)) {
    $existing = json_decode(file_get_contents($cache_file), true) ?: [];
}

// === АКТУАЛЬНЫЕ ДАННЫЕ (обновите по реальным источникам) ===
$csg_count = 0;  // Авианосные группы
$ddg_count = 3;  // Эсминцы
$ssgn_count = 0; // Подлодки SSGN (засекречены)

// Можно добавить небольшую вариацию для демонстрации динамики
// $ddg_count = rand(2, 4);

// === РАСЧЕТ AAL ===
$aal = 1.0 + ($csg_count * 0.5) + ($ddg_count * 0.1) + ($ssgn_count * 0.3);
$aal = round($aal, 1);

// === ОПРЕДЕЛЕНИЕ ЦВЕТА И ТЕКСТА ===
$aal_text = $aal >= 4 ? 'Критический риск' : 
            ($aal >= 3 ? 'Повышенная угроза' : 
            ($aal >= 2 ? 'Оперативная активность' : 'Минимальный риск'));

$aal_color = $aal >= 4 ? '#dc2626' : 
             ($aal >= 3 ? '#f97316' : 
             ($aal >= 2 ? '#f59e0b' : '#10b981'));

// === ДАННЫЕ ДЛЯ СОХРАНЕНИЯ ===
$now = date('d.m.Y H:i') . ' UTC';

$data = [
    'last_update' => $now,
    'aal' => $aal,
    'aal_text' => $aal_text,
    'aal_color' => $aal_color,
    'analysis' => [
        'csg_count' => $csg_count,
        'ddg_count' => $ddg_count,
        'ssgn_count' => $ssgn_count,
        'iran_ships' => 7,
        'russia_ships' => 5,
        'suez_traffic_loss' => '-60%',
        'economic_risk' => '$1 млрд/день'
    ],
    'reliability' => [
        'confirmed' => 3,
        'probable' => 0,
        'unknown' => 1
    ],
    'chart_data' => array_merge(
        array_slice($existing['chart_data'] ?? [1.0], -9), 
        [$aal]
    ),
    'ships' => $existing['ships'] ?? [] // Оставляем существующие корабли
];

// === СОХРАНЕНИЕ КЭША ===
file_put_contents($cache_file, json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));

// === СОХРАНЕНИЕ В /factors/navy.json ===
$factor_data = [
    'aal' => $aal,
    'last_update' => $now,
    'csg_count' => $csg_count,
    'ddg_count' => $ddg_count,
    'ssgn_count' => $ssgn_count
];
file_put_contents($factor_file, json_encode($factor_data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));

// === ОБНОВЛЕНИЕ total_index.json ===
$total_file = __DIR__ . '/total_index.json';
$total = ['factors' => [], 'total_aal' => 1.0, 'last_update' => $now, 'factor_count' => 0];

if (file_exists($total_file)) {
    $tmp = json_decode(file_get_contents($total_file), true);
    if ($tmp) $total = $tmp;
}

$total['factors']['navy'] = [
    'aal' => $aal,
    'last_update' => $now
];

// Пересчет общего AAL
$sum = $count = 0;
foreach ($total['factors'] as $f) {
    if (isset($f['aal'])) {
        $sum += $f['aal'];
        $count++;
    }
}
$total['total_aal'] = $count > 0 ? round($sum / $count, 2) : 1.0;
$total['factor_count'] = $count;
$total['last_update'] = $now;

file_put_contents($total_file, json_encode($total, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));

// === ОТВЕТ ===
echo json_encode([
    'success' => true,
    'timestamp' => $now,
    'aal' => $aal,
    'message' => 'Navy data updated successfully',
    'files_updated' => [
        'cache' => basename($cache_file),
        'factor' => basename($factor_file),
        'total' => basename($total_file)
    ]
], JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
?>