import { NextRequest, NextResponse } from 'next/server';
import ZAI from 'z-ai-web-dev-sdk';

export async function POST(request: NextRequest) {
  try {
    const { imageUrl } = await request.json();

    if (!imageUrl) {
      return NextResponse.json({ error: 'معرف الصورة مطلوب' }, { status: 400 });
    }

    const zai = await ZAI.create();

    // Build the image URL for the API
    let imageForApi = imageUrl;
    if (imageUrl.startsWith('/')) {
      // Local file — convert to base64
      const fs = await import('fs/promises');
      const path = await import('path');
      const filepath = path.join(process.cwd(), 'public', imageUrl);
      const buffer = await fs.readFile(filepath);
      const base64 = buffer.toString('base64');
      const ext = path.extname(imageUrl).toLowerCase();
      const mime = ext === '.png' ? 'image/png' : 'image/jpeg';
      imageForApi = `data:${mime};base64,${base64}`;
    }

    const response = await zai.chat.completions.createVision({
      messages: [
        {
          role: 'user',
          content: [
            {
              type: 'text',
              text: `حلّل هذه الصورة بالتفصيل. أجب باللغة العربية واشمل:
1. وصف عام للمشهد والموضوعات
2. الألوان السائدة والإضاءة
3. الجودة والوضوح
4. اقتراحات للتحسين أو التعديل المناسب (اذكر 3-5 اقتراحات عملية)`,
            },
            {
              type: 'image_url',
              image_url: { url: imageForApi },
            },
          ],
        },
      ],
      thinking: { type: 'disabled' },
    });

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

    return NextResponse.json({ analysis });
  } catch (error: unknown) {
    const message = error instanceof Error ? error.message : 'خطأ في تحليل الصورة';
    return NextResponse.json({ error: message }, { status: 500 });
  }
}