import { NextRequest, NextResponse } from 'next/server' import { auth } from '@/auth' import { getProject, getProjectBuckets } from '@/lib/vikunja-client' export async function GET( _request: NextRequest, { params }: { params: Promise<{ id: string }> } ) { const session = await auth() if (!session?.user) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } try { const { id } = await params const projectId = parseInt(id, 10) const project = await getProject(projectId) // Find the kanban view (view_kind=3) or first view const kanbanView = project.views?.find(v => v.view_kind === 3) const listView = project.views?.find(v => v.view_kind === 0) const defaultView = kanbanView || listView || project.views?.[0] let buckets: unknown[] = [] if (defaultView) { try { buckets = await getProjectBuckets(projectId, defaultView.id) } catch { // Buckets may not exist for all view types } } return NextResponse.json({ ...project, buckets, kanbanViewId: kanbanView?.id || null, listViewId: listView?.id || null, defaultViewId: defaultView?.id || null, }) } catch (error) { const message = error instanceof Error ? error.message : 'Failed to fetch project' return NextResponse.json({ error: message }, { status: 502 }) } }