import { NextResponse } from 'next/server' /** * GET /api/admin/companion * Proxy to backend /api/state/dashboard for companion dashboard data */ export async function GET() { try { const backendUrl = process.env.BACKEND_URL || 'http://localhost:8000' // TODO: Replace with actual backend call when endpoint is available // const response = await fetch(`${backendUrl}/api/state/dashboard`, { // method: 'GET', // headers: { // 'Content-Type': 'application/json', // }, // }) // // if (!response.ok) { // throw new Error(`Backend responded with ${response.status}`) // } // // const data = await response.json() // return NextResponse.json(data) // Mock response for development const mockData = { success: true, data: { context: { currentPhase: 'erarbeitung', phaseDisplayName: 'Erarbeitung', }, stats: { classesCount: 4, studentsCount: 96, learningUnitsCreated: 23, gradesEntered: 156, }, phases: [ { id: 'einstieg', shortName: 'E', displayName: 'Einstieg', duration: 8, status: 'completed', color: '#4A90E2' }, { id: 'erarbeitung', shortName: 'A', displayName: 'Erarbeitung', duration: 20, status: 'active', color: '#F5A623' }, { id: 'sicherung', shortName: 'S', displayName: 'Sicherung', duration: 10, status: 'planned', color: '#7ED321' }, { id: 'transfer', shortName: 'T', displayName: 'Transfer', duration: 7, status: 'planned', color: '#9013FE' }, { id: 'reflexion', shortName: 'R', displayName: 'Reflexion', duration: 5, status: 'planned', color: '#6B7280' }, ], progress: { percentage: 65, completed: 13, total: 20, }, suggestions: [ { id: '1', title: 'Klausuren korrigieren', description: 'Deutsch LK - 12 unkorrigierte Arbeiten warten', priority: 'urgent', icon: 'ClipboardCheck', actionTarget: '/ai/klausur-korrektur', estimatedTime: 120, }, { id: '2', title: 'Elternsprechtag vorbereiten', description: 'Notenuebersicht fuer 8b erstellen', priority: 'high', icon: 'Users', actionTarget: '/education/grades', estimatedTime: 30, }, ], upcomingEvents: [ { id: 'e1', title: 'Mathe-Test 9b', date: new Date(Date.now() + 2 * 24 * 60 * 60 * 1000).toISOString(), type: 'exam', inDays: 2, }, { id: 'e2', title: 'Elternsprechtag', date: new Date(Date.now() + 5 * 24 * 60 * 60 * 1000).toISOString(), type: 'parent_meeting', inDays: 5, }, ], }, } return NextResponse.json(mockData) } catch (error) { console.error('Companion dashboard error:', error) return NextResponse.json( { success: false, error: error instanceof Error ? error.message : 'Unknown error', }, { status: 500 } ) } }