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