Files
medreport_mrb2b/app/home/(user)/_lib/server/actions.ts
2025-09-17 18:11:13 +03:00

66 lines
1.4 KiB
TypeScript

'use server';
import { StoreProductVariant } from '@medusajs/types';
import {
bookAppointment,
createInitialReservation,
} from '~/lib/services/connected-online.service';
import { handleAddToCart } from '~/lib/services/medusaCart.service';
import { updateLineItem } from '../../../../../packages/features/medusa-storefront/src/lib/data';
export async function bookTimeAction(
serviceId: number,
clinicId: number,
appointmentUserId: number,
syncUserId: number,
startTime: Date,
comments?: string,
) {
return bookAppointment(
serviceId,
clinicId,
appointmentUserId,
syncUserId,
startTime,
comments,
);
}
export async function createInitialReservationAction(
selectedVariant: Pick<StoreProductVariant, 'id'>,
countryCode: string,
serviceId: number,
clinicId: number,
appointmentUserId: number,
syncUserId: number,
startTime: Date,
locationId: number | null,
comments?: string,
) {
const { addedItem } = await handleAddToCart({
selectedVariant,
countryCode,
});
if (addedItem) {
const reservation = await createInitialReservation(
serviceId,
clinicId,
appointmentUserId,
syncUserId,
startTime,
addedItem.id,
locationId,
comments,
);
await updateLineItem({
lineId: addedItem.id,
quantity: addedItem.quantity,
metadata: { connectedOnlineReservationId: reservation.id },
});
}
}