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}`);
}