import { NextResponse } from "next/server" import { fetchAction } from "convex/nextjs" import { api } from "@/convex/_generated/api" import { requireAdminSession } from "@/lib/server/admin-auth" type RouteContext = { params: Promise<{ id: string }> } export async function POST(request: Request, { params }: RouteContext) { const adminUser = await requireAdminSession(request) if (!adminUser) { return NextResponse.redirect(new URL("/sign-in", request.url)) } const { id } = await params const formData = await request.formData() const body = String(formData.get("body") || "").trim() if (!body) { return NextResponse.redirect( new URL(`/admin/conversations?conversationId=${encodeURIComponent(id)}`, request.url) ) } try { await fetchAction(api.crm.sendAdminConversationMessage, { conversationId: id, body, }) return NextResponse.redirect( new URL( `/admin/conversations?conversationId=${encodeURIComponent(id)}`, request.url ) ) } catch (error) { console.error("Failed to send admin conversation message:", error) return NextResponse.redirect( new URL( `/admin/conversations?conversationId=${encodeURIComponent(id)}&error=send`, request.url ) ) } }