File size: 1,368 Bytes
65d68f5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | import { apiGet, apiPost } from "@/lib/api/client";
import type {
ExamModeResult,
FlashcardResult,
GenerationResult,
QuizResult,
} from "@/types/dashboard";
export type StudioGenerationPayload = {
source_id: string;
study_profile_id?: string;
topic?: string;
subject?: string;
level?: string;
goal?: string;
time_left?: string;
language_preference?: string;
options?: Record<string, unknown>;
};
export async function generateNotes(payload: StudioGenerationPayload) {
return apiPost<GenerationResult, StudioGenerationPayload>(
"/generate/notes",
payload,
{ timeoutMs: 180000 },
);
}
export async function generateQuiz(payload: StudioGenerationPayload) {
return apiPost<QuizResult, StudioGenerationPayload>(
"/generate/quiz",
payload,
{ timeoutMs: 180000 },
);
}
export async function generateFlashcards(payload: StudioGenerationPayload) {
return apiPost<FlashcardResult, StudioGenerationPayload>(
"/generate/flashcards",
payload,
{ timeoutMs: 180000 },
);
}
export async function generateExamMode(payload: StudioGenerationPayload) {
return apiPost<ExamModeResult, StudioGenerationPayload>(
"/generate/exam-mode",
payload,
{ timeoutMs: 180000 },
);
}
export async function listGenerations(limit = 10) {
return apiGet<GenerationResult[]>(`/generations?limit=${limit}`);
}
|