import { NextResponse } from 'next/server' import { db } from '@/lib/db' export const dynamic = 'force-dynamic' // PATCH /api/aos/tickets/[id]/escalate // An agency escalates a ticket to us (the platform admin). After escalation, // the ticket appears in our admin inbox (scope=admin sees escalated tickets). export async function PATCH(_req: Request, { params }: { params: Promise<{ id: string }> }) { try { const { id } = await params const ticket = await db.ticket.findUnique({ where: { id } }) if (!ticket) { return NextResponse.json({ error: 'ticket not found' }, { status: 404 }) } if (ticket.escalatedToAdmin) { return NextResponse.json({ error: 'already escalated' }, { status: 409 }) } await db.ticket.update({ where: { id }, data: { escalatedToAdmin: true, escalatedAt: new Date(), status: 'open', // reopen for admin attention }, }) await db.auditLog.create({ data: { actor: 'agency:escalate', action: 'ticket.escalate', entity: 'Ticket', entityId: id, after: JSON.stringify({ number: ticket.number, escalatedAt: new Date() }), hash: 'sha256:' + Math.random().toString(36).slice(2), }, }) return NextResponse.json({ ok: true, escalatedToAdmin: true }) } catch (err) { const msg = err instanceof Error ? err.message : 'internal server error' return NextResponse.json({ error: msg }, { status: 500 }) } }