feat : limit each session to 1 hours when checkout
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import Link from "next/link";
|
||||
import { and, desc, eq, isNull } from "drizzle-orm";
|
||||
import { and, desc, eq, gt, isNull } from "drizzle-orm";
|
||||
import { redirect } from "next/navigation";
|
||||
import { connection } from "next/server";
|
||||
import { getDb } from "@/db";
|
||||
@@ -10,6 +10,7 @@ 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() {
|
||||
@@ -23,7 +24,8 @@ export default async function CommissionTicketsPage() {
|
||||
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)))
|
||||
.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 <div className="min-h-svh"><SiteHeader /><CommissionLiveRefresh endpoint="/api/commission/events" />
|
||||
|
||||
Reference in New Issue
Block a user