// src/utils/AiRepositoryHelper.ts
import { replacePromptVariables } from "./KeysHekper";
import { aiModelsRepository } from "./AiModelsHelper.ts";

type AiRepositoryParams = {
  text: string;
  model: "chatgpt" | "claude" | "gemini";
  modelMode: string;
  prompt?: string;
  variables?: Record<string, string>;
};

export async function AiRepository({
  text,
  model,
  modelMode,
  prompt,
  variables = {},
}: AiRepositoryParams) {
  if (!text) throw new Error("Missing input text");

  const fallbackPrompt = `Please humanize the following content:\n\n@text`;
  const mergedVariables = { text, ...variables };
  const finalPrompt = replacePromptVariables(
    prompt || fallbackPrompt,
    mergedVariables
  );

  console.log("Final Prompt:", finalPrompt);

  try {
    const aiModel = await aiModelsRepository(model, modelMode);
    return await aiModel(prompt || fallbackPrompt, text);
  } catch (error) {
    console.error("AI model error:", error);
    throw error;
  }
}

