<?php
// Prueba directa con formato oficial de Gemini
error_reporting(E_ALL);
ini_set('display_errors', 1);

echo "<h2>Prueba Gemini AI - Formato Oficial</h2>";

$GEMINI_API_KEY = 'AIzaSyA7084Ia1jIaBbX2VI-3pu1qdI3mwclNEk';
$GEMINI_API_URL = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent';

$pregunta = "Explica brevemente qué es la inteligencia artificial";

echo "<p><strong>Pregunta:</strong> $pregunta</p>";
echo "<p><strong>Modelo:</strong> gemini-2.0-flash</p>";

// Construir según documentación oficial
$requestBody = [
    'contents' => [
        [
            'parts' => [
                [
                    'text' => $pregunta
                ]
            ]
        ]
    ]
];

echo "<p><strong>Enviando solicitud...</strong></p>";

// cURL con headers oficiales
$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => $GEMINI_API_URL,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => json_encode($requestBody),
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'X-goog-api-key: ' . $GEMINI_API_KEY
    ],
    CURLOPT_TIMEOUT => 30,
    CURLOPT_SSL_VERIFYPEER => true,
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);

echo "<p><strong>Código HTTP:</strong> $httpCode</p>";

if ($error) {
    echo "<p style='color: red;'><strong>Error cURL:</strong> $error</p>";
} else {
    echo "<p><strong>Respuesta cruda:</strong></p>";
    echo "<pre style='background: #f5f5f5; padding: 10px; max-height: 200px; overflow-y: auto;'>" . htmlspecialchars($response) . "</pre>";
    
    if ($httpCode === 200) {
        $geminiResponse = json_decode($response, true);
        
        if (isset($geminiResponse['candidates'][0]['content']['parts'][0]['text'])) {
            $respuesta = $geminiResponse['candidates'][0]['content']['parts'][0]['text'];
            echo "<div style='background: #e8f5e8; padding: 15px; border-radius: 5px; border-left: 4px solid #4CAF50;'>";
            echo "<strong>✅ Respuesta de Gemini:</strong><br><br>";
            echo nl2br(htmlspecialchars($respuesta));
            echo "</div>";
            echo "<p style='color: green;'><strong>✅ API funcionando correctamente!</strong></p>";
        } else {
            echo "<p style='color: red;'><strong>❌ Error:</strong> Estructura de respuesta inesperada</p>";
            echo "<p><strong>Estructura recibida:</strong></p>";
            echo "<pre>" . print_r($geminiResponse, true) . "</pre>";
        }
    } else {
        $errorData = json_decode($response, true);
        echo "<p style='color: red;'><strong>❌ Error HTTP $httpCode</strong></p>";
        
        if (isset($errorData['error']['message'])) {
            echo "<p style='color: red;'><strong>Mensaje:</strong> " . htmlspecialchars($errorData['error']['message']) . "</p>";
        }
        
        // Errores comunes
        switch ($httpCode) {
            case 400:
                echo "<p style='color: orange;'><strong>Posible causa:</strong> Formato de solicitud incorrecto</p>";
                break;
            case 401:
                echo "<p style='color: orange;'><strong>Posible causa:</strong> API Key inválida o no configurada</p>";
                break;
            case 403:
                echo "<p style='color: orange;'><strong>Posible causa:</strong> API Key sin permisos o proyecto sin Gemini AI habilitado</p>";
                break;
            case 429:
                echo "<p style='color: orange;'><strong>Posible causa:</strong> Límite de solicitudes excedido</p>";
                break;
            case 500:
                echo "<p style='color: orange;'><strong>Posible causa:</strong> Error interno de Google</p>";
                break;
        }
    }
}
?>