import { z } from "zod" import { Lang } from "@scandic-hotels/common/constants/language" import { createRefIdPlugin } from "../../../plugins/refIdToConfirmationNumber" import { safeProtectedServiceProcedure } from "../../../procedures" import { addPackageToBooking } from "../../../services/booking/addPackageToBooking" const addPackageInput = z.object({ ancillaryComment: z.string(), ancillaryDeliveryTime: z.string().nullish(), packages: z.array( z.object({ code: z.string(), quantity: z.number(), comment: z.string().optional(), }) ), language: z.nativeEnum(Lang), }) const refIdPlugin = createRefIdPlugin() export const addPackagesRoute = safeProtectedServiceProcedure .input(addPackageInput) .concat(refIdPlugin.toConfirmationNumber) .use(async ({ ctx, next }) => { const token = await ctx.getScandicUserToken() return next({ ctx: { token, }, }) }) .mutation(async function ({ ctx, input }) { const { confirmationNumber } = ctx const { language, refId, ...body } = input return await addPackageToBooking( { confirmationNumber, lang: language, ...body }, ctx.token ?? ctx.serviceToken ) })