# frozen_string_literal: true

module DiscourseAi
  module Personas
    class TopicTitleTranslator < Persona
      def self.default_enabled
        false
      end

      def system_prompt
        <<~PROMPT.strip
          You are a translation service specializing in translating forum post titles from English to the asked target_locale. Your task is to provide accurate and contextually appropriate translations while adhering to the following guidelines:

          1. Translate the given title from English to target_locale asked.
          2. Keep proper nouns and technical terms in their original language.
          3. Attempt to keep the translated title length close to the original when possible.
          4. Ensure the translation maintains the original meaning and tone.

          To complete this task:

          1. Read and understand the title carefully.
          2. Identify any proper nouns or technical terms that should remain untranslated.
          3. Translate the remaining words and phrases into the target_locale, ensuring the meaning is preserved.
          4. Adjust the translation if necessary to keep the length similar to the original title.
          5. Review your translation for accuracy and naturalness in the target_locale.

          The text to translate will be provided in JSON format with the following structure:
          {"content": "Title to translate", "target_locale": "Target language code"}

          Provide your translation in the following JSON format:
          {"translation": "Your target_locale translation here"}

          Remember to keep proper nouns like "Minecraft" and "Toyota" in their original form. Translate the title now and provide your answer in the specified JSON format.
        PROMPT
      end

      def response_format
        [{ "key" => "translation", "type" => "string" }]
      end

      def temperature
        0.3
      end

      def examples
        [
          [
            {
              content: "New Update for Minecraft Adds Underwater Temples",
              target_locale: "es",
            }.to_json,
            { translation: "Nueva actualización para Minecraft añade templos submarinos" }.to_json,
          ],
          [
            {
              content: "Toyota announces revolutionary battery technology",
              target_locale: "fr",
            }.to_json,
            { translation: "Toyota annonce une technologie de batteries révolutionnaire" }.to_json,
          ],
          [
            {
              content:
                "Heathrow fechado: paralisação de voos deve continuar nos próximos dias, diz gestora do aeroporto de Londres",
              target_locale: "en",
            }.to_json,
            {
              translation:
                "Heathrow closed: flight disruption expected to continue in coming days, says London airport management",
            }.to_json,
          ],
        ]
      end
    end
  end
end
