// ===================================================== // 當前競賽管理 API // ===================================================== import { NextRequest, NextResponse } from 'next/server'; import { CompetitionService } from '@/lib/services/database-service'; // 獲取當前競賽 export async function GET(request: NextRequest) { try { const currentCompetition = await CompetitionService.getCurrentCompetition(); return NextResponse.json({ success: true, message: '當前競賽獲取成功', data: currentCompetition }); } catch (error) { console.error('獲取當前競賽失敗:', error); return NextResponse.json({ success: false, message: '獲取當前競賽失敗', error: error instanceof Error ? error.message : '未知錯誤' }, { status: 500 }); } } // 設置當前競賽 export async function POST(request: NextRequest) { try { const body = await request.json(); const { competitionId } = body; if (!competitionId) { return NextResponse.json({ success: false, message: '缺少競賽ID', error: 'competitionId 為必填欄位' }, { status: 400 }); } // 檢查競賽是否存在 const competition = await CompetitionService.getCompetitionById(competitionId); if (!competition) { return NextResponse.json({ success: false, message: '競賽不存在', error: '找不到指定的競賽' }, { status: 404 }); } // 設置為當前競賽 const success = await CompetitionService.setCurrentCompetition(competitionId); if (!success) { return NextResponse.json({ success: false, message: '設置當前競賽失敗', error: '無法設置當前競賽' }, { status: 500 }); } // 獲取更新後的當前競賽 const updatedCurrentCompetition = await CompetitionService.getCurrentCompetition(); return NextResponse.json({ success: true, message: '當前競賽設置成功', data: updatedCurrentCompetition }); } catch (error) { console.error('設置當前競賽失敗:', error); return NextResponse.json({ success: false, message: '設置當前競賽失敗', error: error instanceof Error ? error.message : '未知錯誤' }, { status: 500 }); } } // 取消當前競賽 export async function DELETE(request: NextRequest) { try { const success = await CompetitionService.clearCurrentCompetition(); if (!success) { return NextResponse.json({ success: false, message: '取消當前競賽失敗', error: '無法取消當前競賽' }, { status: 500 }); } return NextResponse.json({ success: true, message: '當前競賽已取消' }); } catch (error) { console.error('取消當前競賽失敗:', error); return NextResponse.json({ success: false, message: '取消當前競賽失敗', error: error instanceof Error ? error.message : '未知錯誤' }, { status: 500 }); } }