Commission tickets
ยังไม่มี Ticket
} {tickets.slice(0, 50).map(({ ticket, amount, customer }) =>import Link from "next/link"; import { desc, eq } from "drizzle-orm"; import { redirect } from "next/navigation"; import { connection } from "next/server"; import { getDb } from "@/db"; import { commissionCheckouts, commissionTickets, users } from "@/db/schema"; import { AdminHeader } from "@/components/admin/admin-header"; import { CommissionLiveRefresh } from "@/components/commission/live-refresh"; import { AdminCommissionAvailabilityControl } from "@/components/commission/admin-availability-control"; import { Badge } from "@/components/ui/badge"; import { Card, CardAction, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { getAdminSession } from "@/lib/auth/server"; import { getCommissionAvailability } from "@/lib/commission/availability"; export const instant = false; export default async function AdminCommissionPage({ searchParams }: PageProps<"/admin/commission">) { await connection(); if (!(await getAdminSession())) redirect("/admin/login"); const query = await searchParams; const rawPage = Number(query.page ?? 1); const page = Number.isInteger(rawPage) && rawPage > 0 ? Math.min(rawPage, 10000) : 1; const [tickets, availability] = await Promise.all([getDb().select({ ticket: commissionTickets, amount: commissionCheckouts.amountBaht, customer: users.name }).from(commissionTickets) .innerJoin(commissionCheckouts, eq(commissionTickets.checkoutId, commissionCheckouts.id)) .innerJoin(users, eq(commissionTickets.userId, users.id)) .orderBy(desc(commissionTickets.status), desc(commissionTickets.updatedAt), desc(commissionTickets.id)) .limit(51).offset((page - 1) * 50), getCommissionAvailability()]); return
ยังไม่มี Ticket
} {tickets.slice(0, 50).map(({ ticket, amount, customer }) =>