feat: Add Mermaid diagram block with AI generation capabilities to lessons.

This commit is contained in:
2026-03-09 14:45:52 -03:00
parent bc5b240984
commit b9c17ce67b
15 changed files with 2746 additions and 25 deletions
+9 -1
View File
@@ -68,7 +68,7 @@ export interface QuizQuestion {
export interface Block {
id: string;
type: 'description' | 'media' | 'quiz' | 'fill-in-the-blanks' | 'matching' | 'ordering' | 'short-answer' | 'document' | 'video_marker' | 'audio-response' | 'memory-match' | 'hotspot' | 'peer-review' | 'role-playing';
type: 'description' | 'media' | 'quiz' | 'fill-in-the-blanks' | 'matching' | 'ordering' | 'short-answer' | 'document' | 'video_marker' | 'audio-response' | 'memory-match' | 'hotspot' | 'peer-review' | 'role-playing' | 'mermaid';
title?: string;
content?: string;
url?: string;
@@ -105,6 +105,8 @@ export interface Block {
user_role?: string;
objectives?: string;
initial_message?: string;
// Mermaid fields
mermaid_code?: string;
}
export interface Lesson {
@@ -667,6 +669,12 @@ export const cmsApi = {
body: JSON.stringify(payload)
});
},
async generateMermaidDiagram(lessonId: string, payload: { prompt_hint?: string }): Promise<{ mermaid_code: string }> {
return apiFetch(`/lessons/${lessonId}/generate-mermaid`, {
method: 'POST',
body: JSON.stringify(payload)
});
},
async generateHotspots(lessonId: string, payload: { image_url: string, prompt_hint?: string }): Promise<{
label: string;
description: string;