<?php

namespace App\Services\Ai;

use App\Enums\DifficultyLevelEnums;
use App\Enums\QuestionTypeEnum;
use App\Models\Contest;
use App\Models\Language;
use App\Models\Quiz;
use Illuminate\Http\Request;

interface Ai
{
    public function setup(?string $ai_name = null): self;

    public function buildQuestionPrompt(QuestionTypeEnum $type, string $topic, string $topic_details, DifficultyLevelEnums $level, int $questionCount, ?string $language = 'English'): self;

    public function buildQuestionTranslationPrompt(array $attributes): self;

    public function process(?string $prompt = null): array;

    public function storeQuestion(array $questions, Contest|Quiz $contest, Language $language, Request $request);

    public function updateQuestionLanguages(Contest|Quiz $contest, Language $language, Request $request);

    public function getPrompt(): ?string;
}
