import { NextResponse } from "next/server"; import { db, supportTickets, desc } from "@epicure/db"; import { requireAdmin } from "@/lib/api-auth"; import { getPublicUrl } from "@/lib/storage"; export async function GET() { const { response } = await requireAdmin(); if (response) return response; const rows = await db.query.supportTickets.findMany({ orderBy: desc(supportTickets.createdAt), with: { attachments: true, user: { columns: { email: true, username: true } }, }, }); return NextResponse.json( rows.map((r) => ({ id: r.id, userId: r.userId, userEmail: r.user.email, username: r.user.username, type: r.type, title: r.title, description: r.description, status: r.status, giteaIssueUrl: r.giteaIssueUrl, giteaError: r.giteaError, createdAt: r.createdAt, updatedAt: r.updatedAt, attachments: r.attachments.map((a) => ({ ...a, url: getPublicUrl(a.storageKey) })), })) ); }