32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
import { cache } from "react";
|
|
import { getCMS } from "@/lib/payload/getPayload";
|
|
import { customerBookingView, type CustomerBooking } from "./customerView";
|
|
|
|
/**
|
|
* These are called only after the caller has already verified who the
|
|
* current customer is (see lib/auth/customer.ts) — the `where: { user }`
|
|
* filter below is what actually scopes results to that one customer.
|
|
*/
|
|
export const getCustomerBookings = cache(async (customerId: number): Promise<CustomerBooking[]> => {
|
|
const payload = await getCMS();
|
|
const result = await payload.find({
|
|
collection: "booking-requests",
|
|
where: { user: { equals: customerId } },
|
|
sort: "-date",
|
|
depth: 2,
|
|
limit: 200,
|
|
});
|
|
return result.docs.map(customerBookingView);
|
|
});
|
|
|
|
export async function getCustomerBookingById(customerId: number, id: number): Promise<CustomerBooking | null> {
|
|
const payload = await getCMS();
|
|
const result = await payload.find({
|
|
collection: "booking-requests",
|
|
where: { and: [{ id: { equals: id } }, { user: { equals: customerId } }] },
|
|
depth: 2,
|
|
limit: 1,
|
|
});
|
|
return result.docs[0] ? customerBookingView(result.docs[0]) : null;
|
|
}
|