import Link from "next/link"; import { and, desc, eq, gt, isNull } from "drizzle-orm"; import { redirect } from "next/navigation"; import { connection } from "next/server"; import { getDb } from "@/db"; import { commissionCheckouts, commissionTickets } from "@/db/schema"; import { CommissionLiveRefresh } from "@/components/commission/live-refresh"; import { CommissionSignOut } from "@/components/commission/sign-out"; import { SiteHeader } from "@/components/public/site-header"; import { Badge } from "@/components/ui/badge"; import { Card, CardAction, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { getCustomerSession } from "@/lib/auth/server"; import { CHECKOUT_DURATION_MS, checkoutNow } from "@/lib/commission/checkout-expiration"; export const instant = false; export default async function CommissionTicketsPage() { await connection(); const session = await getCustomerSession(); if (!session) redirect("/login?next=%2Fcommission%2Ftickets"); const [tickets, pending] = await Promise.all([ getDb().select({ ticket: commissionTickets, amount: commissionCheckouts.amountBaht }) .from(commissionTickets).innerJoin(commissionCheckouts, eq(commissionTickets.checkoutId, commissionCheckouts.id)) .where(eq(commissionTickets.userId, session.user.id)).orderBy(desc(commissionTickets.updatedAt)).limit(50), getDb().select({ id: commissionCheckouts.id, amount: commissionCheckouts.amountBaht, createdAt: commissionCheckouts.createdAt }).from(commissionCheckouts) .leftJoin(commissionTickets, eq(commissionTickets.checkoutId, commissionCheckouts.id)) .where(and(eq(commissionCheckouts.userId, session.user.id), isNull(commissionTickets.id), gt(commissionCheckouts.createdAt, new Date(checkoutNow() - CHECKOUT_DURATION_MS)))) .orderBy(desc(commissionCheckouts.createdAt)).limit(20), ]); return

Ticket ของฉัน

สร้างคำขอเพิ่ม {pending.length > 0 &&

รอชำระเงิน

} {pending.map((checkout) => รอชำระเงิน - ฿{checkout.amount} {checkout.createdAt.toLocaleString("th-TH")} )}

Ticket ที่ชำระเงินแล้ว

{tickets.length === 0 &&

ยังไม่มี Ticket

} {tickets.map(({ ticket, amount }) => {ticket.title || `Ticket #${ticket.id.slice(0, 8)}`} {ticket.status === "open" ? "เปิดอยู่" : "ปิดแล้ว"} ฿{amount} - {ticket.updatedAt.toLocaleString("th-TH")} )}
; }