import { prisma } from "@/lib/prisma"; import { Prisma } from "@/app/generated/prisma/client"; export const paymentRepo = { async findById(id: string) { return prisma.payment.findUnique({ where: { id } }); }, async findByExternalOrderId(externalOrderId: string) { return prisma.payment.findUnique({ where: { externalOrderId } }); }, async findActiveManualForBooking(bookingId: string) { return prisma.payment.findFirst({ where: { bookingId, provider: "MANUAL", status: { in: ["PENDING", "AWAITING"] }, }, orderBy: { createdAt: "desc" }, }); }, async create( data: Pick< Prisma.PaymentUncheckedCreateInput, | "bookingId" | "provider" | "externalOrderId" | "amount" | "status" | "method" | "expiresAt" > ) { return prisma.payment.create({ data }); }, async update(id: string, data: Prisma.PaymentUpdateInput) { return prisma.payment.update({ where: { id }, data }); }, };