export default defineEventHandler(async (event) => {
  try {
    const body = await readBody(event);
    const { action, text, language = "fa" } = body;

    // بررسی پارامترهای ورودی
    if (!action || !text) {
      throw createError({
        statusCode: 400,
        statusMessage: "پارامترهای action و text الزامی هستند",
      });
    }

    // API keyها از .env
    const config = useRuntimeConfig();
    const OPENAI_API_KEY = config.OPENAI_API_KEY;
    const GEMINI_API_KEY = config.GEMINI_API_KEY;

    // انتخاب سرویس AI
    const useOpenAI = !!OPENAI_API_KEY;
    const useGemini = !!GEMINI_API_KEY && !useOpenAI;

    let aiResult = "";

    if (useOpenAI) {
      // OpenAI API
      const response = await fetch(
        "https://api.openai.com/v1/chat/completions",
        {
          method: "POST",
          headers: {
            Authorization: `Bearer ${OPENAI_API_KEY}`,
            "Content-Type": "application/json",
          },
          body: JSON.stringify({
            model: "gpt-3.5-turbo",
            messages: [
              {
                role: "system",
                content:
                  "تو یک دستیار فارسی‌زبان هستی که به کاربران در نوشتن کمک می‌کنی.",
              },
              {
                role: "user",
                content: getPrompt(action, text, language),
              },
            ],
            temperature: 0.7,
            max_tokens: 500,
          }),
        }
      );

      if (!response.ok) {
        throw new Error(`OpenAI API error: ${response.status}`);
      }

      const data = await response.json();
      aiResult = data.choices[0]?.message?.content || "خطا در پردازش";
    } else if (useGemini) {
      // Google Gemini API
      const response = await fetch(
        `https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=${GEMINI_API_KEY}`,
        {
          method: "POST",
          headers: {
            "Content-Type": "application/json",
          },
          body: JSON.stringify({
            contents: [
              {
                parts: [
                  {
                    text: getPrompt(action, text, language),
                  },
                ],
              },
            ],
          }),
        }
      );

      if (!response.ok) {
        throw new Error(`Gemini API error: ${response.status}`);
      }

      const data = await response.json();
      aiResult =
        data.candidates?.[0]?.content?.parts?.[0]?.text || "خطا در پردازش";
    } else {
      // پاسخ تستی (اگر API key ندارید)
      aiResult = getMockResponse(action, text, language);
    }

    return {
      success: true,
      action,
      result: aiResult,
      timestamp: new Date().toISOString(),
    };
  } catch (error) {
    console.error("AI API Error:", error);

    return {
      success: false,
      error: error.message,
      mockResponse: getMockResponse(action, text, language),
    };
  }
});

// تولید prompt بر اساس action
function getPrompt(action, text, language) {
  const prompts = {
    summarize: `لطفاً این متن را به فارسی خلاصه کن و نکات اصلی آن را استخراج کن. متن:\n\n${text}\n\nخلاصه:`,
    improve: `این متن را از نظر دستوری، نگارشی و سبک نوشتار بهبود بده و آن را حرفه‌ای‌تر کن. متن:\n\n${text}\n\nمتن بهبود یافته:`,
    translate: `این متن فارسی را به انگلیسی ترجمه کن. متن:\n\n${text}\n\nترجمه:`,
    explain: `این متن را به زبان ساده توضیح بده و مفاهیم آن را شفاف سازی کن. متن:\n\n${text}\n\nتوضیح:`,
    continue: `بر اساس این متن، آن را ادامه بده و محتوای مرتبط اضافه کن. متن:\n\n${text}\n\nادامه متن:`,
  };

  return prompts[action] || `در مورد این متن نظر بده:\n\n${text}\n\nنظر:`;
}

// پاسخ‌های تستی
function getMockResponse(action, text, language) {
  const responses = {
    summarize: `📝 خلاصه متن: این یک خلاصه آزمایشی از متن شماست که نکات کلیدی را پوشش می‌دهد. متن اصلی حدود ${text.length} کاراکتر داشت و شامل موضوعاتی مانند نمونه‌گیری و تست است.`,
    improve: `✨ متن بهبود یافته: این نسخه اصلاح شده متن شماست با رعایت اصول نگارشی و ساختار بهتر. جملات روان‌تر شده و از واژگان مناسب‌تری استفاده شده است.`,
    translate: `🌍 Translation: This is a sample translation of your Persian text into English. The original text was about testing and demonstration purposes.`,
    explain: `💡 توضیح: این مفهوم به زبان ساده توضیح داده می‌شود تا درک آن آسان‌تر شود. منظور از این متن نمایش قابلیت‌های سیستم هوش مصنوعی است.`,
    continue: `↪️ ادامه متن: این بخش ادامه منطقی متن شماست که ایده‌های مطرح شده را توسعه می‌دهد. با توجه به محتوای قبلی، می‌توان به موضوعات مرتبط دیگری نیز پرداخت.`,
  };

  return (
    responses[action] ||
    "پردازش AI انجام شد. برای استفاده از قابلیت‌های واقعی، لطفاً API key مناسب را تنظیم کنید."
  );
}
