<?php
require_once 'config.php';

// Запрашиваем список моделей из API
$ch = curl_init('https://gptunnel.ru/v1/models');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: ' . $apiKey]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);

$modelsData = json_decode($response, true);
$modelsList = $modelsData['data'] ?? [];

// Жесткая группировка по производителям
$groupedModels = [
    'OpenAI (ChatGPT)' => [],
    'Anthropic (Claude)' => [],
    'Google (Gemini)' => [],
    'DeepSeek' => [],
    'Mistral AI' => [],
    'Meta (Llama)' => [],
    'xAI (Grok)' => [],
    'Генерация изображений' => [],
    'Аудио, Векторы и Модерация' => [],
    'Другие модели' => []
];

foreach ($modelsList as $model) {
    $id = strtolower($model['id']);
    
    // Сначала отсеиваем аудио, векторы и картинки
    if (strpos($id, 'embedding') !== false || strpos($id, 'tts') !== false || strpos($id, 'whisper') !== false || strpos($id, 'moderation') !== false) {
        $groupedModels['Аудио, Векторы и Модерация'][] = $model;
    } elseif (strpos($id, 'midjourney') !== false || strpos($id, 'dall-e') !== false || strpos($id, 'flux') !== false || strpos($id, 'stable-diffusion') !== false || strpos($id, 'sd3') !== false || strpos($id, 'recraft') !== false) {
        $groupedModels['Генерация изображений'][] = $model;
    } 
    // Затем сортируем текстовые модели по производителям
    elseif (strpos($id, 'gpt-') !== false || strpos($id, 'o1-') !== false || strpos($id, 'o3-') !== false || strpos($id, 'chatgpt') !== false) {
        $groupedModels['OpenAI (ChatGPT)'][] = $model;
    } elseif (strpos($id, 'claude-') !== false) {
        $groupedModels['Anthropic (Claude)'][] = $model;
    } elseif (strpos($id, 'gemini-') !== false) {
        $groupedModels['Google (Gemini)'][] = $model;
    } elseif (strpos($id, 'deepseek-') !== false) {
        $groupedModels['DeepSeek'][] = $model;
    } elseif (strpos($id, 'mistral-') !== false || strpos($id, 'mixtral-') !== false || strpos($id, 'pixtral-') !== false) {
        $groupedModels['Mistral AI'][] = $model;
    } elseif (strpos($id, 'llama-') !== false) {
        $groupedModels['Meta (Llama)'][] = $model;
    } elseif (strpos($id, 'grok-') !== false) {
        $groupedModels['xAI (Grok)'][] = $model;
    } else {
        $groupedModels['Другие модели'][] = $model;
    }
}

// Удаляем пустые группы, чтобы не выводить лишние заголовки
$groupedModels = array_filter($groupedModels, function($group) { return count($group) > 0; });
?>
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
    <title>Справочник моделей API</title>
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap" rel="stylesheet">
    <style>
        :root {
            --bg-main: #0f172a;
            --bg-panel: #1e293b;
            --accent: #10b981;
            --text-main: #f8fafc;
            --text-muted: #94a3b8;
            --border: #334155;
        }
        body { background: var(--bg-main); color: var(--text-main); font-family: 'Inter', sans-serif; margin: 0; padding: 20px; }
        .container { max-width: 1000px; margin: 0 auto; padding-bottom: 50px; }
        
        .header { display: flex; align-items: center; gap: 20px; margin-bottom: 30px; }
        .back-btn { background: var(--bg-panel); color: var(--text-main); text-decoration: none; padding: 10px 20px; border-radius: 8px; border: 1px solid var(--border); transition: 0.2s; font-weight: 500; }
        .back-btn:hover { background: var(--border); color: var(--accent); }
        
        h1 { font-weight: 700; color: var(--accent); font-size: 28px; margin: 0; }
        
        .table-container { background: var(--bg-panel); border-radius: 12px; border: 1px solid var(--border); overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,0.5); }
        table { width: 100%; border-collapse: collapse; text-align: left; }
        th, td { padding: 15px 20px; }
        
        /* Заголовок таблицы */
        th { background: #0b1120; font-weight: 500; color: var(--text-muted); text-transform: uppercase; font-size: 12px; letter-spacing: 1px; border-bottom: 1px solid var(--border); }
        
        /* Обычные строки */
        tr { border-bottom: 1px solid var(--border); transition: background 0.2s; }
        tr:last-child { border-bottom: none; }
        tr:hover:not(.category-row) { background: rgba(255,255,255,0.03); }
        
        .tech-name { font-family: monospace; color: #38bdf8; background: rgba(56, 189, 248, 0.1); padding: 4px 8px; border-radius: 4px; font-size: 13px; }
        .price { font-weight: 500; color: #fbbf24; }

        /* ЖИРНЫЕ РАЗДЕЛИТЕЛИ КАТЕГОРИЙ */
        .category-row td {
            background: #0f172a !important; /* Темный фон для контраста */
            color: var(--accent);
            font-size: 18px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 2px;
            padding: 25px 20px 15px 20px;
            border-top: 4px solid var(--accent); /* Жирная верхняя линия */
            border-bottom: 1px solid var(--border);
        }

        /* Убираем верхнюю жирную линию у самой первой категории */
        tbody tr.category-row:first-child td {
            border-top: none;
        }

        @media (max-width: 768px) {
            th, td { padding: 12px 10px; font-size: 14px; }
            .tech-name { font-size: 11px; display: block; margin-top: 5px; }
            h1 { font-size: 20px; }
            .category-row td { font-size: 15px; padding: 20px 10px 10px 10px; }
        }
    </style>
</head>
<body>

<div class="container">
    <div class="header">
        <a href="pult.php" class="back-btn">← Назад в пульт</a>
        <h1>Справочник моделей</h1>
    </div>

    <div class="table-container">
        <table>
            <thead>
                <tr>
                    <th>Название (Общеупотребительное)</th>
                    <th>Техническое название (ID)</th>
                    <th>Вход (₽ / 1k)</th>
                    <th>Выход (₽ / 1k)</th>
                </tr>
            </thead>
            <tbody>
                <?php if(empty($groupedModels)): ?>
                    <tr><td colspan="4" style="text-align:center; padding: 30px;">Не удалось загрузить список моделей. Проверьте API ключ.</td></tr>
                <?php else: ?>
                    <?php foreach($groupedModels as $categoryName => $models): ?>
                        <!-- РАЗДЕЛИТЕЛЬ -->
                        <tr class="category-row">
                            <td colspan="4"><?= htmlspecialchars($categoryName) ?></td>
                        </tr>
                        <!-- МОДЕЛИ ЭТОЙ КАТЕГОРИИ -->
                        <?php foreach($models as $model): ?>
                            <tr>
                                <td><?= htmlspecialchars($model['title'] ?? 'Неизвестно') ?></td>
                                <td><span class="tech-name"><?= htmlspecialchars($model['id']) ?></span></td>
                                <td class="price"><?= htmlspecialchars($model['cost_context'] ?? '0.00') ?></td>
                                <td class="price"><?= htmlspecialchars($model['cost_completion'] ?? '0.00') ?></td>
                            </tr>
                        <?php endforeach; ?>
                    <?php endforeach; ?>
                <?php endif; ?>
            </tbody>
        </table>
    </div>
</div>

</body>
</html>