import { NextRequest, NextResponse } from 'next/server'; import { getAuthorizedProjectDb, getWritableProjectDb } from '@/lib/project-auth'; export async function GET( request: NextRequest, { params }: { params: Promise<{ projectCode: string }> } ) { try { const { projectCode } = await params; const projectDbResult = await getAuthorizedProjectDb(projectCode); if (!projectDbResult.success) { return projectDbResult.response; } const versions = await projectDbResult.prisma.version.findMany({ orderBy: { releaseDate: 'desc' }, }); return NextResponse.json({ versions }); } catch (error) { console.error('获取项目版本列表失败:', error); return NextResponse.json({ error: '服务器错误' }, { status: 500 }); } } export async function POST( request: NextRequest, { params }: { params: Promise<{ projectCode: string }> } ) { try { const { projectCode } = await params; const projectDbResult = await getWritableProjectDb(projectCode); if (!projectDbResult.success) { return projectDbResult.response; } const { version, releaseNotes, minRequiredVersion, isSecurityUpdate, isCriticalUpdate } = await request.json(); if (!version) { return NextResponse.json({ success: false, error: '版本号不能为空' }, { status: 400 }); } const existing = await projectDbResult.prisma.version.findUnique({ where: { version }, }); if (existing) { return NextResponse.json({ success: false, error: '版本号已存在' }, { status: 400 }); } const newVersion = await projectDbResult.prisma.version.create({ data: { version, releaseNotes: releaseNotes || null, minRequiredVersion: minRequiredVersion || null, isSecurityUpdate: isSecurityUpdate || false, isCriticalUpdate: isCriticalUpdate || false, }, }); return NextResponse.json({ success: true, version: newVersion }); } catch (error) { console.error('发布项目版本失败:', error); return NextResponse.json({ success: false, error: '服务器错误' }, { status: 500 }); } }