import { NextResponse } from "next/server"; import { z } from "zod"; import { requireApiAccess } from "../../../../lib/api/auth"; import { copyOptimizationRequestSchema } from "../../../../lib/domain/validation"; import { LlmValidationError } from "../../../../lib/llm/client"; import { optimizeRenweiCopy } from "../../../../lib/workflow/renwei-copy-optimizer"; export async function POST(request: Request) { const access = requireApiAccess(request); if (!access.ok) { return access.response; } try { const payload = copyOptimizationRequestSchema.parse(await request.json()); const result = await optimizeRenweiCopy(payload); return NextResponse.json({ result }); } catch (error) { return jsonError(error, getErrorStatus(error)); } } function jsonError(error: unknown, status: number) { const message = error instanceof z.ZodError ? "请输入需要优化的文案" : error instanceof Error ? error.message : "文案优化失败"; return NextResponse.json({ error: message }, { status }); } function getErrorStatus(error: unknown) { if (error instanceof LlmValidationError) return 502; if (error instanceof Error && /^LLM\b|provider/i.test(error.message)) return 502; return 400; }