import { NextRequest, NextResponse } from "next/server"; import { auth } from "@/app/(auth)/auth"; import { saveMessages } from "@/lib/db/queries"; import type { DBMessage } from "@/lib/db/schema"; /** * 保存消息到数据库的API * 用于图片处理等场景中保存助手回复消息 */ export async function POST(request: NextRequest) { try { const session = await auth(); if (!session?.user?.id) { return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); } const body = await request.json(); const { chatId, message } = body; if (!chatId || !message) { return NextResponse.json( { error: "Missing required fields: chatId and message" }, { status: 400 } ); } // 构造DBMessage对象 const dbMessage: DBMessage = { id: message.id, chatId, role: message.role || "assistant", parts: message.parts || [], attachments: message.attachments || [], createdAt: message.createdAt ? new Date(message.createdAt) : new Date(), videoStorageStatus: null, temporaryVideoUrl: null, permanentVideoUrl: null, archivedAt: null, videoMetadata: null, }; // 保存消息到数据库 await saveMessages({ messages: [dbMessage] }); return NextResponse.json({ success: true }); } catch (error) { console.error("[Messages API] Error:", error); return NextResponse.json( { error: "Failed to save message" }, { status: 500 } ); } }