import { Injectable } from '@nestjs/common';
import { PromptAI } from 'src/common/enums';
import { ChatGPTProvider } from './chatgpt.provider';
import { GeminiProvider } from './gemini.provider';
import { PromptProvider } from '../interfaces/prompt-provider.interface';

@Injectable()
export class PromptProviderFactory {
  constructor(
    private readonly chatgpt: ChatGPTProvider,
    private readonly gemini: GeminiProvider,
  ) {}

  get(type: PromptAI): PromptProvider {
    switch (type) {
      case PromptAI.GEMINI:
        return this.gemini;
      case PromptAI.CHATGPT:
      default:
        return this.chatgpt;
    }
  }
}
