<?php
/**
 * POST /api/lab/test_gemini.php
 * Prueba la clave de Gemini con una pregunta mínima.
 * Body JSON: { key: string }
 */
require_once __DIR__ . '/_helpers.php';
requireMethod('POST');
requireAdmin();

$datos = inputJson();
$key   = trim($datos['key'] ?? '');
if (!$key) jsonError('Token vacío.');

$payload = json_encode([
    'contents' => [['role' => 'user', 'parts' => [['text' => 'Responde solo con la palabra: OK']]]],
    'generationConfig' => ['maxOutputTokens' => 10, 'temperature' => 0],
], JSON_UNESCAPED_UNICODE);

$ch = curl_init("https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent?key={$key}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => $payload,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_TIMEOUT        => 10,
    CURLOPT_SSL_VERIFYPEER => true,
]);
$raw  = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if (!$raw) jsonError('Sin respuesta del servidor de Google.', 502);

$gemini = json_decode($raw, true);
if ($code !== 200) {
    jsonError($gemini['error']['message'] ?? "Error HTTP {$code}", 502);
}

jsonOk(['modelo' => 'gemini-3.5-flash', 'respuesta' => $gemini['candidates'][0]['content']['parts'][0]['text'] ?? '']);
