'use client' import type { TrainingModule, ModuleContent, TrainingMedia } from '@/lib/sdk/training/types' import AudioPlayer from '@/components/training/AudioPlayer' import VideoPlayer from '@/components/training/VideoPlayer' import ScriptPreview from '@/components/training/ScriptPreview' interface ContentTabProps { modules: TrainingModule[] selectedModuleId: string onSelectModule: (id: string) => void generatedContent: ModuleContent | null generating: boolean bulkGenerating: boolean bulkResult: { generated: number; skipped: number; errors: string[] } | null moduleMedia: TrainingMedia[] interactiveGenerating?: boolean onGenerateContent: () => void onGenerateQuiz: () => void onBulkContent: () => void onBulkQuiz: () => void onPublishContent: (contentId: string) => void onReloadMedia: () => void onGenerateInteractiveVideo?: () => void } export function ContentTab({ modules, selectedModuleId, onSelectModule, generatedContent, generating, bulkGenerating, bulkResult, moduleMedia, interactiveGenerating, onGenerateContent, onGenerateQuiz, onBulkContent, onBulkQuiz, onPublishContent, onReloadMedia, onGenerateInteractiveVideo, }: ContentTabProps) { return (
{/* Bulk Generation */}

Bulk-Generierung

Generiere Inhalte und Quiz-Fragen fuer alle Module auf einmal

{bulkResult && (
Generiert: {bulkResult.generated} Uebersprungen: {bulkResult.skipped} {bulkResult.errors?.length > 0 && ( Fehler: {bulkResult.errors.length} )}
{bulkResult.errors?.length > 0 && (
{bulkResult.errors.map((err, i) =>
{err}
)}
)}
)}

LLM-Content-Generator

Generiere Schulungsinhalte und Quiz-Fragen automatisch via KI

{generatedContent && (

Generierter Inhalt (v{generatedContent.version})

Generiert von: {generatedContent.generated_by} ({generatedContent.llm_model})

{!generatedContent.is_published ? ( ) : ( Veroeffentlicht )}
{generatedContent.content_body}
)} {/* Audio Player */} {selectedModuleId && generatedContent?.is_published && ( m.media_type === 'audio') || null} onMediaUpdate={onReloadMedia} /> )} {/* Video Player */} {selectedModuleId && generatedContent?.is_published && ( m.media_type === 'video') || null} onMediaUpdate={onReloadMedia} /> )} {/* Interactive Video */} {selectedModuleId && generatedContent?.is_published && onGenerateInteractiveVideo && (

Interaktives Video

Video mit Narrator-Persona und Checkpoint-Quizzes

{moduleMedia.some(m => m.media_type === 'interactive_video' && m.status === 'completed') ? ( Interaktiv erstellt ) : ( )}
{moduleMedia.filter(m => m.media_type === 'interactive_video' && m.status === 'completed').map(m => (

Dauer: {Math.round(m.duration_seconds / 60)} Min | Groesse: {(m.file_size_bytes / 1024 / 1024).toFixed(1)} MB

Generiert: {new Date(m.created_at).toLocaleString('de-DE')}

))}
)} {/* Script Preview */} {selectedModuleId && generatedContent?.is_published && ( )}
) }