<?php
/**
 * Analyze API Endpoint
 * POST: Accept {imageUrl}, read image, convert to base64, call visionCompletion
 *      Return {analysis} in Arabic
 */

require_once __DIR__ . '/../includes/ZaiApi.php';

header('Content-Type: application/json; charset=utf-8');

$method = $_SERVER['REQUEST_METHOD'];

if ($method !== 'POST') {
    http_response_code(405);
    echo json_encode(['error' => 'طريقة الطلب غير مدعومة']);
    exit;
}

$baseDir = dirname(__DIR__);

try {
    $input = json_decode(file_get_contents('php://input'), true);
    $imageUrl = $input['imageUrl'] ?? '';

    if (empty($imageUrl)) {
        http_response_code(400);
        echo json_encode(['error' => 'معرف الصورة مطلوب']);
        exit;
    }

    // Build the image URL for the API
    $imageForApi = $imageUrl;
    if (strpos($imageUrl, '/') === 0) {
        // Local file — convert to base64
        $filepath = $baseDir . '/public' . $imageUrl;

        if (!file_exists($filepath)) {
            http_response_code(400);
            echo json_encode(['error' => 'الصورة غير موجودة']);
            exit;
        }

        $imageData = file_get_contents($filepath);
        $base64 = base64_encode($imageData);

        $ext = strtolower(pathinfo($imageUrl, PATHINFO_EXTENSION));
        $mime = ($ext === 'png') ? 'image/png' : 'image/jpeg';
        $imageForApi = 'data:' . $mime . ';base64,' . $base64;
    }

    $zai = new ZaiApi();
    $response = $zai->visionCompletion([
        [
            'role' => 'user',
            'content' => [
                [
                    'type' => 'text',
                    'text' => "حلّل هذه الصورة بالتفصيل. أجب باللغة العربية واشمل:\n1. وصف عام للمشهد والموضوعات\n2. الألوان السائدة والإضاءة\n3. الجودة والوضوح\n4. اقتراحات للتحسين أو التعديل المناسب (اذكر 3-5 اقتراحات عملية)",
                ],
                [
                    'type' => 'image_url',
                    'image_url' => ['url' => $imageForApi],
                ],
            ],
        ],
    ]);

    $analysis = $response['choices'][0]['message']['content'] ?? 'لم يتم الحصول على تحليل';

    echo json_encode(['analysis' => $analysis]);
} catch (Exception $e) {
    http_response_code(500);
    echo json_encode(['error' => 'خطأ في تحليل الصورة']);
}