@jaicome/contracts 0.0.73 → 0.0.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,5 +1,6 @@
1
- import { $a as getCategoryInputSchema, $o as bannerListOutputSchema, $r as createSocialInputSchema, $t as listLocationsInputSchema, Aa as createImageOutputSchema, Ai as createCustomerManualInputSchema, An as upsertLocationBusinessHoursInputSchema, Ao as updateModifierInputSchema, At as createAddressInputSchema, Ba as deleteCategoryOutputSchema, Bn as listOrdersOutputSchema, Bo as upsertModifierDefaultLocationOverrideInputSchema, Br as listMerchantsOutputSchema, Bt as deleteFulfillmentBusinessHoursInputSchema, C as listPayoutsInputSchema, Cn as uploadLocationBannerOutputSchema, Co as unlinkItemWithCategoryInputSchema, Cr as promoCodeOutputSchema, Ct as sendMerchantInvoiceInputSchema, D as payoutSchema, Da as createCategoryInputSchema, Dn as upsertDeliveryInputSchema, Do as updateCategoryOutputSchema, Dr as updatePromoCodeInputSchema, Dt as addProviderInputSchema, Ei as bulkCustomerImportResultSchema, En as upsertCurbsideInputSchema, Eo as updateCategoryInputSchema, Er as promoCodeValidationResultSchema, Et as addCurbsideSpotInputSchema, Fa as createModifierListOutputSchema, Fi as customerAddressByIdInputSchema, Fo as updateVariationOutputSchema, Fr as createMerchantLegalDetailsInputSchema, Ft as createWhatsAppGroupInputSchema, G as refundOrderInputSchema, Ga as deleteModifierListOutputSchema, Gi as deleteCustomerInputSchema, Go as upsertVariationLocationOverrideInputSchema, Gt as fulfillmentBusinessHoursOutputSchema, Ha as deleteItemOutputSchema, Ho as upsertModifierLocationOverrideInputSchema, Ht as deleteWhatsAppGroupInputSchema, Ia as createModifierOutputSchema, Io as uploadCatalogItemPhotoInputSchema, Ir as createMerchantOutputSchema, It as createWhatsAppGroupOutputSchema, J as calculateSmsCostInputSchema, Ja as deleteModifierOverrideOutputSchema, Ji as listCustomerAddressesOutputSchema, Jt as linkWhatsAppGroupOutputSchema, K as refundOrderOutputSchema, Ka as deleteModifierOutputSchema, Ki as deleteMerchantCustomerInputSchema, Kr as merchantLegalDetailsSchema, L as listPaymentsInputSchema, La as createVariationInputSchema, Li as customerAddressOutputSchema, Ln as getOrderByIdInputSchema, Lo as uploadCatalogItemPhotoOutputSchema, Lr as linkSquareIntegrationInputSchema, M as upsertBankAccountInputSchema, Ma as createItemOutputSchema, Mi as createMerchantCustomerManualInputSchema, Mn as upsertPickupInputSchema, Mo as updateModifierListOutputSchema, Mr as createLeadForAdminOutputSchema, Na as createModifierInputSchema, Ni as createMerchantCustomerManualOutputSchema, Nn as checkoutResultSchema, No as updateModifierOutputSchema, Oa as createCategoryOutputSchema, On as upsertDineInInputSchema, Oo as updateItemInputSchema, P as getPaymentInputSchema, Pa as createModifierListInputSchema, Pi as customerAddressBaseSchema, Pn as createOrderInputSchema, Po as updateVariationInputSchema, Pr as createMerchantInputSchema, Pt as createLocationInputSchema, Qa as getCatalogItemOutputSchema, Qi as listMerchantCustomersOutputSchema, Qo as bannerIdInputSchema, Qr as uploadVatDocumentInputSchema, Qt as listLocationWhatsAppGroupsOutputSchema, R as listPaymentsOutputSchema, Ra as createVariationOutputSchema, Ri as customerBaseSchema, Rn as getOrderConfigInputSchema, Ro as upsertItemLocationOverrideInputSchema, Rr as linkSquareIntegrationOutputSchema, S as listCompanyPayoutAccountsInputSchema, Si as bulkCustomerExportResultSchema, Sn as uploadLocationBannerInputSchema, So as mutationIdOutputSchema, Sr as promoCodeListOutputSchema, Ti as bulkCustomerImportInputSchema, Tn as uploadLocationPhotoOutputSchema, To as unlinkItemWithModifierListInputSchema, Tr as promoCodeValidationInputSchema, Tt as updateSubscriptionPlanInputSchema, Ua as deleteModifierInputSchema, Un as orderConfigSchema, Uo as upsertModifierOverrideInputSchema, Ur as merchantFullDetailsSchema, V as paymentOutputSchema, Va as deleteItemInputSchema, Vo as upsertModifierInputSchema, Vt as deleteLocationBusinessHoursInputSchema, Wa as deleteModifierListInputSchema, Wo as upsertModifierOverrideOutputSchema, Wr as merchantIdInputSchema, X as getSmsBalanceInputSchema, Xa as deleteVariationOutputSchema, Xi as listCustomersOutputSchema, Xr as updateMerchantLegalDetailsInputSchema, Xt as listAvailableWhatsAppGroupsOutputSchema, Y as calculateSmsCostOutputSchema, Ya as deleteVariationInputSchema, Yi as listCustomersInputSchema, Yo as activeBannerListOutputSchema, Yr as merchantSyncEventSchema, Yt as listAvailableWhatsAppGroupsInputSchema, Z as getSmsBalanceOutputSchema, Za as getCatalogItemInputSchema, Zi as listMerchantCustomersInputSchema, Zo as approveBannerInputSchema, Zr as uploadCrnDocumentInputSchema, Zt as listLocationWhatsAppGroupsInputSchema, _ as getEffectiveBankAccountInputSchema, _o as listCatalogModifiersInputSchema, _r as promoCodeBaseSchema, ao as linkItemWithCategoryInputSchema, at as availableTemplateResourcesSchema, b as getLocationBalanceOutputSchema, bi as updateDiscountInputSchema, bn as updateProviderInputSchema, bo as listCatalogVariationsOutputSchema, bt as createSubscriptionPlanInputSchema, c as bankAccountSchema, co as linkOperationOutputSchema, ct as listMessageTemplatesInputSchema, d as createCompanyPayoutAccountInputSchema, di as createDiscountInputSchema, do as listCatalogCategoriesWithItemsInputSchema, dt as messageTemplateByIdInputSchema, ea as merchantCustomerByIdInputSchema, ei as socialBaseSchema, en as listLocationsOutputSchema, eo as getCategoryOutputSchema, es as bannerOutputSchema, et as sendDirectMessageInputSchema, f as createPayoutInputSchema, fo as listCatalogCategoriesWithItemsOutputSchema, fr as createPromoCodeInputSchema, g as getCompanyPayoutAccountInputSchema, gi as discountOutputSchema, gn as removeProviderInputSchema, go as listCatalogModifierListsOutputSchema, h as getBankAccountOutputSchema, hi as discountListOutputSchema, hn as removeLocationThemeInputSchema, ho as listCatalogModifierListsInputSchema, i as payoutReportOutputSchema, io as getModifierOutputSchema, is as listBannersInputSchema, j as updateCompanyPayoutAccountInputSchema, ja as createItemInputSchema, ji as createCustomerManualOutputSchema, jn as upsertLocationThemeInputSchema, jo as updateModifierListInputSchema, jr as createLeadForAdminInputSchema, ka as createImageInputSchema, ki as createCustomerAddressInputSchema, kn as upsertFulfillmentBusinessHoursInputSchema, ko as updateItemOutputSchema, kt as createAddressForLocationInputSchema, lo as listCatalogCategoriesInputSchema, lr as updateFulfillmentInputSchema, lt as listMessageTemplatesOutputSchema, m as getBankAccountInputSchema, mi as discountIdInputSchema, mn as removeDeliveryInputSchema, mo as listCatalogItemsOutputSchema, mr as listPromoCodesInputSchema, n as payoutReportInputSchema, na as merchantCustomerOutputSchema, no as getModifierListInputSchema, nr as orderOutputSchema, ns as createBannerInputSchema, nt as sendMessageInputSchema, on as locationMutationOutputSchema, oo as linkItemWithImageInputSchema, os as updateBannerInputSchema, ot as createMessageTemplateInputSchema, p as deleteCompanyPayoutAccountInputSchema, pn as removeCurbsideSpotInputSchema, po as listCatalogItemsInputSchema, pt as messageTemplateOutputSchema, qa as deleteModifierOverrideInputSchema, qi as listCustomerAddressesInputSchema, qt as linkWhatsAppGroupInputSchema, ra as upsertCustomerInputSchema, ri as updateSocialInputSchema, rn as locationIdInputSchema, ro as getModifierListOutputSchema, rs as listActiveBannersInputSchema, rt as sendMessageOutputSchema, sn as locationSchema, so as linkItemWithModifierListInputSchema, to as getModifierInputSchema, tt as sendDirectMessageOutputSchema, u as companyPayoutAccountSchema, uo as listCatalogCategoriesOutputSchema, ur as upsertOrderConfigInputSchema, v as getEffectiveBankAccountOutputSchema, vo as listCatalogModifiersOutputSchema, vt as updateMessageTemplateInputSchema, w as listPayoutsOutputSchema, wn as uploadLocationPhotoInputSchema, wo as unlinkItemWithImageInputSchema, wt as subscriptionPlanSchema, x as getPayoutInputSchema, xi as bulkCustomerExportInputSchema, xn as updateWhatsAppGroupInputSchema, xr as promoCodeIdInputSchema, xt as merchantInvoiceSchema, y as getLocationBalanceInputSchema, yi as listDiscountsInputSchema, yn as updateLocationInputSchema, yo as listCatalogVariationsInputSchema, yt as createMerchantInvoiceInputSchema, za as deleteCategoryInputSchema, zi as customerByIdInputSchema, zn as listOrdersInputSchema, zo as upsertItemModifierOverrideInputSchema, zr as listMerchantsInputSchema } from "./schema-0qCwa7QX.mjs";
2
- import { FulfillmentStateMachine, FulfillmentStateValues, TerminalStates, assertCanTransition, canTransition, getAllowedTransitions, getAllowedUserTransitions, isTerminalState } from "./fulfillment-states.mjs";
1
+ import { $ as getEffectiveBankAccountOutputSchema, $a as customerBaseSchema, $i as getMerchantInputSchema, $o as createVariationInputSchema, $r as orderOutputSchema, $s as uploadCatalogItemPhotoOutputSchema, $t as deliveryStatusSchema, A as listServiceChargesInputSchema, Aa as discountListOutputSchema, Ai as listPaymentsInputSchema, Ar as checkoutResultSchema, As as listCatalogItemsOutputSchema, Ba as bulkCustomerImportInputSchema, Bn as fulfillmentBusinessHoursOutputSchema, Br as orderConfigSchema, Bs as unlinkItemWithImageInputSchema, Bt as createSubscriptionPlanInputSchema, Ci as promoCodeValidationResultSchema, Cn as createAddressInputSchema, Cr as upsertCurbsideInputSchema, Cs as linkItemWithModifierListInputSchema, Ct as sendMessageOutputSchema, Di as getPaymentInputSchema, Dn as createLocationInputSchema, Dr as upsertLocationBusinessHoursInputSchema, Ds as listCatalogCategoriesWithItemsInputSchema, Ea as createDiscountInputSchema, Er as upsertFulfillmentBusinessHoursInputSchema, Es as listCatalogCategoriesOutputSchema, Et as createMessageTemplateInputSchema, F as updateServiceChargeInputSchema, Fa as updateDiscountInputSchema, Fn as deleteLocationInputSchema, Fr as getOrderConfigInputSchema, Fs as listCatalogVariationsInputSchema, G as companyPayoutAccountSchema, Ga as createCustomerManualInputSchema, Gn as listAvailableWhatsAppGroupsOutputSchema, Go as createImageInputSchema, Gs as updateItemOutputSchema, Gt as updateSubscriptionPlanInputSchema, Hi as setPaidOutputSchema, Hn as linkWhatsAppGroupInputSchema, Hs as updateCategoryInputSchema, Ia as bulkCustomerExportInputSchema, In as deleteLocationOutputSchema, Ir as listOrdersInputSchema, Is as listCatalogVariationsOutputSchema, J as deleteCompanyPayoutAccountInputSchema, Ja as createMerchantCustomerManualOutputSchema, Jn as listLocationsInputSchema, Jo as createItemOutputSchema, Js as updateModifierListOutputSchema, K as createCompanyPayoutAccountInputSchema, Ka as createCustomerManualOutputSchema, Ki as createLeadInputSchema, Kn as listLocationWhatsAppGroupsInputSchema, Ko as createImageOutputSchema, Ks as updateModifierInputSchema, Kt as connectIntegrationInputSchema, L as payoutReportInputSchema, La as bulkCustomerExportResultSchema, Ln as deleteWhatsAppGroupInputSchema, Lr as listOrdersOutputSchema, M as serviceChargeIdInputSchema, Ms as listCatalogModifierListsOutputSchema, N as serviceChargeListOutputSchema, Nn as deleteFulfillmentBusinessHoursInputSchema, Ns as listCatalogModifiersInputSchema, Nt as messageTemplateOutputSchema, On as createWhatsAppGroupInputSchema, Or as upsertLocationThemeInputSchema, Os as listCatalogCategoriesWithItemsOutputSchema, Ot as listMessageTemplatesInputSchema, P as serviceChargeOutputSchema, Pa as listDiscountsInputSchema, Pi as paymentOutputSchema, Pn as deleteLocationBusinessHoursInputSchema, Pr as getOrderByIdInputSchema, Ps as listCatalogModifiersOutputSchema, Q as getEffectiveBankAccountInputSchema, Qa as customerAddressOutputSchema, Qi as deleteMerchantAccountOutputSchema, Qn as locationIdInputSchema, Qo as createModifierOutputSchema, Qs as uploadCatalogItemPhotoInputSchema, Qt as deliveryProviderSchema, Ri as refundOrderInputSchema, Rs as mutationIdOutputSchema, Rt as updateMessageTemplateInputSchema, S as taxOutputSchema, Sc as updateBannerInputSchema, Si as promoCodeValidationInputSchema, Sn as createAddressForLocationInputSchema, Sr as uploadLocationPhotoOutputSchema, Ss as linkItemWithImageInputSchema, St as sendMessageInputSchema, T as updateTaxInputSchema, Tr as upsertDineInInputSchema, Ts as listCatalogCategoriesInputSchema, Tt as availableTemplateResourcesSchema, U as bankAccountSchema, Un as linkWhatsAppGroupOutputSchema, Uo as createCategoryInputSchema, Us as updateCategoryOutputSchema, Ut as sendMerchantInvoiceInputSchema, Va as bulkCustomerImportResultSchema, Vi as setPaidInputSchema, Vs as unlinkItemWithModifierListInputSchema, Vt as merchantInvoiceSchema, Wa as createCustomerAddressInputSchema, Wn as listAvailableWhatsAppGroupsInputSchema, Wo as createCategoryOutputSchema, Ws as updateItemInputSchema, Wt as subscriptionPlanSchema, X as getBankAccountOutputSchema, Xa as customerAddressByIdInputSchema, Xi as createMerchantOutputSchema, Xo as createModifierListInputSchema, Xs as updateVariationInputSchema, Xt as deleteIntegrationInputSchema, Y as getBankAccountInputSchema, Ya as customerAddressBaseSchema, Yi as createMerchantInputSchema, Yn as listLocationsOutputSchema, Yo as createModifierInputSchema, Ys as updateModifierOutputSchema, Z as getCompanyPayoutAccountInputSchema, Zi as deleteMerchantAccountInputSchema, Zo as createModifierListOutputSchema, Zs as updateVariationOutputSchema, _ as listTaxesInputSchema, _n as setIntegrationStatusInputSchema, _o as merchantCustomerOutputSchema, _r as updateProviderInputSchema, _s as getModifierInputSchema, _t as getSmsBalanceOutputSchema, a as egsStatusOutputSchema, aa as merchantIdInputSchema, ac as upsertModifierOverrideInputSchema, as as deleteModifierInputSchema, at as listPayoutsOutputSchema, b as taxIdInputSchema, bc as listBannersInputSchema, bi as promoCodeOutputSchema, bn as addProviderInputSchema, br as uploadLocationBannerOutputSchema, bs as getModifierOutputSchema, bt as sendDirectMessageInputSchema, c as onboardEgsOutputSchema, co as listCustomerAddressesInputSchema, cr as removeCurbsideSpotInputSchema, cs as deleteModifierOutputSchema, ct as payoutSchema, d as reportInvoiceOutputSchema, da as updateMerchantInputSchema, dc as activeBannerListOutputSchema, di as listPromoCodesInputSchema, do as listCustomersOutputSchema, dr as removeProviderInputSchema, ds as deleteVariationInputSchema, ea as listMerchantsInputSchema, ec as upsertItemLocationOverrideInputSchema, en as disconnectIntegrationInputSchema, eo as customerByIdInputSchema, es as createVariationOutputSchema, et as getLocationBalanceInputSchema, f as syncInvoicesInputSchema, fa as uploadMerchantCrnDocInputSchema, fo as listMerchantCustomersInputSchema, fr as temporaryClosureInputSchema, fs as deleteVariationOutputSchema, ft as updateCompanyPayoutAccountInputSchema, g as createTaxInputSchema, gc as bannerOutputSchema, gr as updateLocationInputSchema, gs as getCategoryOutputSchema, gt as getSmsBalanceInputSchema, ha as socialBaseSchema, hc as bannerListOutputSchema, ho as merchantCustomerByIdInputSchema, hs as getCategoryInputSchema, ht as calculateSmsCostOutputSchema, ia as merchantFullDetailsSchema, ic as upsertModifierLocationOverrideInputSchema, in as integrateLocationOutputSchema, is as deleteItemOutputSchema, it as listPayoutsInputSchema, ja as discountOutputSchema, ji as listPaymentsOutputSchema, jr as createOrderInputSchema, js as listCatalogModifierListsInputSchema, jt as messageTemplateByIdInputSchema, k as createServiceChargeInputSchema, ka as discountIdInputSchema, kn as createWhatsAppGroupOutputSchema, kr as upsertPickupInputSchema, ks as listCatalogItemsInputSchema, kt as listMessageTemplatesOutputSchema, l as onboardingDataOutputSchema, li as createPromoCodeInputSchema, ln as listIntegrationsInputSchema, lo as listCustomerAddressesOutputSchema, lr as removeDeliveryInputSchema, ls as deleteModifierOverrideInputSchema, ma as createSocialInputSchema, mc as bannerIdInputSchema, mi as promoCodeBaseSchema, ms as getCatalogItemOutputSchema, mt as calculateSmsCostInputSchema, n as batchReportOutputSchema, na as merchantBaseSchema, nc as upsertModifierDefaultLocationOverrideInputSchema, nn as getIntegrationOutputSchema, nr as locationSchema, ns as deleteCategoryOutputSchema, nt as getPayoutInputSchema, o as invoiceByPaymentOutputSchema, oc as upsertModifierOverrideOutputSchema, oi as updateFulfillmentInputSchema, oo as deleteCustomerInputSchema, os as deleteModifierListInputSchema, pa as uploadMerchantVatDocInputSchema, pc as approveBannerInputSchema, po as listMerchantCustomersOutputSchema, pr as temporaryClosureOutputSchema, ps as getCatalogItemInputSchema, pt as upsertBankAccountInputSchema, q as createPayoutInputSchema, qa as createMerchantCustomerManualInputSchema, qi as createLeadOutputSchema, qn as listLocationWhatsAppGroupsOutputSchema, qo as createItemInputSchema, qs as updateModifierListInputSchema, qt as connectIntegrationOutputSchema, rc as upsertModifierInputSchema, rn as integrateLocationInputSchema, rs as deleteItemInputSchema, rt as listCompanyPayoutAccountsInputSchema, s as onboardEgsInputSchema, sc as upsertVariationLocationOverrideInputSchema, si as upsertOrderConfigInputSchema, so as deleteMerchantCustomerInputSchema, ss as deleteModifierListOutputSchema, t as batchReportInputSchema, ta as listMerchantsOutputSchema, tc as upsertItemModifierOverrideInputSchema, tn as getIntegrationInputSchema, tr as locationMutationOutputSchema, ts as deleteCategoryInputSchema, tt as getLocationBalanceOutputSchema, u as reportInvoiceInputSchema, ua as merchantSyncEventSchema, un as listIntegrationsOutputSchema, uo as listCustomersInputSchema, ur as removeLocationThemeInputSchema, us as deleteModifierOverrideOutputSchema, va as updateSocialInputSchema, vc as createBannerInputSchema, vi as promoCodeIdInputSchema, vn as setIntegrationStatusOutputSchema, vo as upsertCustomerInputSchema, vr as updateWhatsAppGroupInputSchema, vs as getModifierListInputSchema, wi as updatePromoCodeInputSchema, wr as upsertDeliveryInputSchema, ws as linkOperationOutputSchema, x as taxListOutputSchema, xr as uploadLocationPhotoInputSchema, xs as linkItemWithCategoryInputSchema, xt as sendDirectMessageOutputSchema, yc as listActiveBannersInputSchema, yi as promoCodeListOutputSchema, yn as addCurbsideSpotInputSchema, yr as uploadLocationBannerInputSchema, ys as getModifierListOutputSchema, z as payoutReportOutputSchema, zi as refundOrderOutputSchema, zs as unlinkItemWithCategoryInputSchema, zt as createMerchantInvoiceInputSchema } from "./zatca-CEInGWOH.mjs";
2
+ import "./schema/index.mjs";
3
+ import { FulfillmentStateMachine, FulfillmentStateValues, STATUS_LABELS, TerminalStates, assertCanTransition, canTransition, getAllowedTransitions, getAllowedUserTransitions, getAvailableUserTransitions, isTerminalState } from "./fulfillment-states.mjs";
3
4
  import { createORPCClient } from "@orpc/client";
4
5
  import { RPCLink } from "@orpc/client/fetch";
5
6
  import { eventIterator, oc } from "@orpc/contract";
@@ -519,6 +520,190 @@ const customersRouter = oc.router({
519
520
  addresses: customerAddressesRouter
520
521
  });
521
522
 
523
+ //#endregion
524
+ //#region src/schema/deliveries.ts
525
+ const createDeliveryInputSchema = z.object({
526
+ orderId: z.string().uuid(),
527
+ merchantId: z.string().uuid().optional(),
528
+ provider: deliveryProviderSchema
529
+ });
530
+ const createDeliveryOutputSchema = z.object({
531
+ id: z.string().uuid(),
532
+ orderId: z.string().uuid(),
533
+ merchantId: z.string().uuid(),
534
+ provider: deliveryProviderSchema,
535
+ status: deliveryStatusSchema,
536
+ createdAt: z.date()
537
+ });
538
+ const cancelDeliveryInputSchema = z.object({
539
+ deliveryId: z.string().uuid(),
540
+ merchantId: z.string().uuid().optional()
541
+ });
542
+ const cancelDeliveryOutputSchema = z.object({ success: z.boolean() });
543
+ const getDeliveryInputSchema = z.object({
544
+ deliveryId: z.string().uuid(),
545
+ merchantId: z.string().uuid().optional()
546
+ });
547
+ const getDeliveryOutputSchema = z.object({
548
+ id: z.string().uuid(),
549
+ orderId: z.string().uuid(),
550
+ merchantId: z.string().uuid(),
551
+ provider: deliveryProviderSchema,
552
+ status: deliveryStatusSchema,
553
+ providerOrderId: z.string().nullable(),
554
+ trackingUrl: z.string().nullable(),
555
+ providerMetadata: z.record(z.string(), z.unknown()),
556
+ createdAt: z.date(),
557
+ updatedAt: z.date()
558
+ });
559
+ const listDeliveriesInputSchema = z.object({
560
+ provider: deliveryProviderSchema.optional(),
561
+ merchantId: z.string().uuid().optional(),
562
+ status: deliveryStatusSchema.optional(),
563
+ limit: z.number().int().min(1).max(100).default(50),
564
+ offset: z.number().int().min(0).default(0)
565
+ });
566
+ const listDeliveriesOutputSchema = z.array(getDeliveryOutputSchema);
567
+ const updateDeliveryInputSchema = z.object({
568
+ deliveryId: z.string().uuid(),
569
+ merchantId: z.string().uuid().optional(),
570
+ status: deliveryStatusSchema,
571
+ providerMetadata: z.record(z.string(), z.unknown()).optional()
572
+ });
573
+ const updateDeliveryOutputSchema = getDeliveryOutputSchema;
574
+
575
+ //#endregion
576
+ //#region src/contract/errors/delivery.ts
577
+ const deliveryOperationSchema = z.enum([
578
+ "create",
579
+ "cancel",
580
+ "update",
581
+ "get",
582
+ "list"
583
+ ]);
584
+ const deliveryErrors = {
585
+ DELIVERY_NOT_FOUND: {
586
+ status: 404,
587
+ message: "Delivery not found",
588
+ data: z.object({ deliveryId: z.string().uuid() })
589
+ },
590
+ DELIVERY_ORDER_NOT_FOUND: {
591
+ status: 404,
592
+ message: "Order not found",
593
+ data: z.object({ orderId: z.string().uuid() })
594
+ },
595
+ DELIVERY_INTEGRATION_NOT_FOUND: {
596
+ status: 404,
597
+ message: "No active integration found for delivery provider",
598
+ data: z.object({
599
+ merchantId: z.string().uuid().optional(),
600
+ provider: deliveryProviderSchema
601
+ })
602
+ },
603
+ DELIVERY_INVALID_OPERATION: {
604
+ status: 400,
605
+ message: "Operation not supported for this delivery provider",
606
+ data: z.object({
607
+ operation: deliveryOperationSchema,
608
+ provider: deliveryProviderSchema
609
+ })
610
+ },
611
+ DELIVERY_PROVIDER_ERROR: {
612
+ status: 502,
613
+ message: "Delivery provider error",
614
+ data: z.object({
615
+ provider: deliveryProviderSchema,
616
+ message: z.string()
617
+ })
618
+ },
619
+ LOCATION_INTEGRATION_NOT_SUPPORTED: {
620
+ status: 400,
621
+ message: "This provider does not support location integration",
622
+ data: z.object({ provider: deliveryProviderSchema })
623
+ }
624
+ };
625
+
626
+ //#endregion
627
+ //#region src/contract/routes/deliveries.ts
628
+ const createDeliveryRoute = oc.route({
629
+ method: "POST",
630
+ path: "/deliveries",
631
+ summary: "Create delivery",
632
+ description: "Create a delivery for an order with a specific provider",
633
+ tags: ["deliveries"],
634
+ successDescription: "Delivery created successfully"
635
+ }).input(createDeliveryInputSchema).output(createDeliveryOutputSchema).errors(deliveryErrors);
636
+ const cancelDeliveryRoute = oc.route({
637
+ method: "POST",
638
+ path: "/deliveries/:deliveryId/cancel",
639
+ summary: "Cancel delivery",
640
+ description: "Cancel a delivery (LOCAL provider only)",
641
+ tags: ["deliveries"],
642
+ successDescription: "Delivery cancelled successfully"
643
+ }).input(cancelDeliveryInputSchema).output(cancelDeliveryOutputSchema).errors(deliveryErrors);
644
+ const getDeliveryRoute = oc.route({
645
+ method: "GET",
646
+ path: "/deliveries/:deliveryId",
647
+ summary: "Get delivery details",
648
+ description: "Retrieve delivery details including order and fulfillment info",
649
+ tags: ["deliveries"],
650
+ successDescription: "Delivery retrieved successfully"
651
+ }).input(getDeliveryInputSchema).output(getDeliveryOutputSchema).errors(deliveryErrors);
652
+ const listDeliveriesRoute = oc.route({
653
+ method: "GET",
654
+ path: "/deliveries",
655
+ summary: "List deliveries",
656
+ description: "List deliveries with optional filters for provider, merchant, and status",
657
+ tags: ["deliveries"],
658
+ successDescription: "Deliveries retrieved successfully"
659
+ }).input(listDeliveriesInputSchema).output(listDeliveriesOutputSchema).errors(deliveryErrors);
660
+ const updateDeliveryRoute = oc.route({
661
+ method: "PATCH",
662
+ path: "/deliveries/:deliveryId",
663
+ summary: "Update delivery",
664
+ description: "Update delivery status (LOCAL provider only)",
665
+ tags: ["deliveries"],
666
+ successDescription: "Delivery updated successfully"
667
+ }).input(updateDeliveryInputSchema).output(updateDeliveryOutputSchema).errors(deliveryErrors);
668
+ const deliveriesRouter = oc.router({
669
+ create: createDeliveryRoute,
670
+ cancel: cancelDeliveryRoute,
671
+ get: getDeliveryRoute,
672
+ list: listDeliveriesRoute,
673
+ update: updateDeliveryRoute
674
+ });
675
+
676
+ //#endregion
677
+ //#region src/schema/devices.ts
678
+ const registerDeviceInputSchema = z.object({
679
+ deviceId: z.string().min(1),
680
+ pushToken: z.string().nullable(),
681
+ platform: z.enum([
682
+ "ios",
683
+ "android",
684
+ "virtual",
685
+ "web"
686
+ ]),
687
+ deviceName: z.string().nullable(),
688
+ model: z.string().min(1),
689
+ appId: z.string().min(1),
690
+ locationId: z.string().uuid().nullable(),
691
+ merchantId: z.string().uuid().nullable()
692
+ });
693
+ const registerDeviceOutputSchema = z.object({
694
+ id: z.string().uuid(),
695
+ deviceId: z.string(),
696
+ isActive: z.boolean()
697
+ });
698
+
699
+ //#endregion
700
+ //#region src/contract/routes/devices.ts
701
+ const registerDeviceRoute = oc.route({
702
+ method: "POST",
703
+ path: "/register"
704
+ }).input(registerDeviceInputSchema).output(registerDeviceOutputSchema);
705
+ const devicesRouter = oc.router({ register: registerDeviceRoute });
706
+
522
707
  //#endregion
523
708
  //#region src/contract/routes/discounts.ts
524
709
  const listDiscountsRoute = oc.route({
@@ -558,7 +743,7 @@ const discountsRouter = oc.router({
558
743
  const createLeadRoute = oc.route({
559
744
  method: "POST",
560
745
  path: "/"
561
- }).input(createLeadForAdminInputSchema).output(createLeadForAdminOutputSchema);
746
+ }).input(createLeadInputSchema).output(createLeadOutputSchema);
562
747
  const leadsRouter = oc.router({ create: createLeadRoute });
563
748
 
564
749
  //#endregion
@@ -570,7 +755,7 @@ const upsertDeliveryFulfillmentRoute = oc.route({
570
755
  description: "Create or update delivery fulfillment configuration for a location",
571
756
  tags: ["locations", "fulfillments"],
572
757
  successDescription: "Delivery fulfillment settings updated successfully"
573
- }).input(upsertDeliveryInputSchema).output(locationMutationOutputSchema);
758
+ }).input(upsertDeliveryInputSchema).output(locationMutationOutputSchema).errors(deliveryErrors);
574
759
  const removeDeliveryFulfillmentRoute = oc.route({
575
760
  method: "DELETE",
576
761
  path: "/locations/:locationId/fulfillments/delivery",
@@ -578,7 +763,7 @@ const removeDeliveryFulfillmentRoute = oc.route({
578
763
  description: "Remove delivery fulfillment configuration from a location",
579
764
  tags: ["locations", "fulfillments"],
580
765
  successDescription: "Delivery fulfillment settings removed successfully"
581
- }).input(removeDeliveryInputSchema).output(locationMutationOutputSchema);
766
+ }).input(removeDeliveryInputSchema).output(locationMutationOutputSchema).errors(deliveryErrors);
582
767
  const upsertPickupFulfillmentRoute = oc.route({
583
768
  method: "PUT",
584
769
  path: "/locations/:locationId/fulfillments/pickup",
@@ -626,7 +811,7 @@ const addDeliveryProviderRoute = oc.route({
626
811
  description: "Add a new delivery provider to location configuration",
627
812
  tags: ["locations", "fulfillments"],
628
813
  successDescription: "Delivery provider added successfully"
629
- }).input(addProviderInputSchema).output(locationMutationOutputSchema);
814
+ }).input(addProviderInputSchema).output(locationMutationOutputSchema).errors(deliveryErrors);
630
815
  const updateDeliveryProviderRoute = oc.route({
631
816
  method: "PATCH",
632
817
  path: "/locations/:locationId/fulfillments/delivery/providers/:provider",
@@ -634,7 +819,7 @@ const updateDeliveryProviderRoute = oc.route({
634
819
  description: "Update delivery provider configuration",
635
820
  tags: ["locations", "fulfillments"],
636
821
  successDescription: "Delivery provider updated successfully"
637
- }).input(updateProviderInputSchema).output(locationMutationOutputSchema);
822
+ }).input(updateProviderInputSchema).output(locationMutationOutputSchema).errors(deliveryErrors);
638
823
  const removeDeliveryProviderRoute = oc.route({
639
824
  method: "DELETE",
640
825
  path: "/locations/:locationId/fulfillments/delivery/providers/:provider",
@@ -642,7 +827,7 @@ const removeDeliveryProviderRoute = oc.route({
642
827
  description: "Remove a delivery provider from location configuration",
643
828
  tags: ["locations", "fulfillments"],
644
829
  successDescription: "Delivery provider removed successfully"
645
- }).input(removeProviderInputSchema).output(locationMutationOutputSchema);
830
+ }).input(removeProviderInputSchema).output(locationMutationOutputSchema).errors(deliveryErrors);
646
831
  const listLocationWhatsAppGroupsRoute = oc.route({
647
832
  method: "GET",
648
833
  path: "/locations/:locationId/chats/groups",
@@ -815,11 +1000,44 @@ const deleteLocationBusinessHoursRoute = oc.route({
815
1000
  tags: ["locations", "business-hours"],
816
1001
  successDescription: "Location business hours deleted successfully"
817
1002
  }).input(deleteLocationBusinessHoursInputSchema).output(z.object({ success: z.boolean() }));
818
- const locationsRouter = oc.router({
1003
+ const createTemporaryClosureRoute = oc.route({
1004
+ method: "POST",
1005
+ path: "/:locationId/temporary-closure",
1006
+ summary: "Create temporary closure for location",
1007
+ description: "Temporarily close a location by specifying either a duration in minutes or an absolute closedUntil timestamp.",
1008
+ tags: ["locations", "temporary-closure"],
1009
+ successDescription: "Temporary closure created successfully"
1010
+ }).input(locationIdInputSchema.merge(temporaryClosureInputSchema)).output(temporaryClosureOutputSchema);
1011
+ const deleteTemporaryClosureRoute = oc.route({
1012
+ method: "DELETE",
1013
+ path: "/:locationId/temporary-closure",
1014
+ summary: "Remove temporary closure for location",
1015
+ description: "Manually reopen a temporarily closed location, removing the closure restrictions.",
1016
+ tags: ["locations", "temporary-closure"],
1017
+ successDescription: "Temporary closure removed successfully"
1018
+ }).input(locationIdInputSchema).output(z.object({ success: z.boolean() }));
1019
+ const getTemporaryClosureRoute = oc.route({
1020
+ method: "GET",
1021
+ path: "/:locationId/temporary-closure",
1022
+ summary: "Get temporary closure status for location",
1023
+ description: "Retrieve the current temporary closure status, including remaining time until reopening.",
1024
+ tags: ["locations", "temporary-closure"],
1025
+ successDescription: "Temporary closure status retrieved successfully"
1026
+ }).input(locationIdInputSchema).output(temporaryClosureOutputSchema);
1027
+ const deleteLocationRoute = oc.route({
1028
+ method: "DELETE",
1029
+ path: "/:locationId",
1030
+ summary: "Delete location",
1031
+ description: "Soft delete a location by setting deletedAt timestamp. Admin-only operation.",
1032
+ tags: ["locations"],
1033
+ successDescription: "Location deleted successfully"
1034
+ }).input(deleteLocationInputSchema).output(deleteLocationOutputSchema);
1035
+ const locationsRouter$1 = oc.router({
819
1036
  list: listLocationsRoute,
820
1037
  get: getLocationByIdRoute,
821
1038
  create: createLocationRoute,
822
1039
  update: updateLocationRoute,
1040
+ delete: deleteLocationRoute,
823
1041
  createAddress: createAddressRoute,
824
1042
  upsertTheme: upsertThemeRoute,
825
1043
  removeTheme: removeThemeRoute,
@@ -827,6 +1045,11 @@ const locationsRouter = oc.router({
827
1045
  upsert: upsertLocationBusinessHoursRoute,
828
1046
  delete: deleteLocationBusinessHoursRoute
829
1047
  }),
1048
+ temporaryClosure: oc.router({
1049
+ create: createTemporaryClosureRoute,
1050
+ delete: deleteTemporaryClosureRoute,
1051
+ get: getTemporaryClosureRoute
1052
+ }),
830
1053
  fulfillments: oc.router({
831
1054
  delivery: oc.router({
832
1055
  upsert: fulfillmentRoutes.delivery.upsert,
@@ -862,6 +1085,68 @@ const locationsRouter = oc.router({
862
1085
  uploadBanner: uploadLocationBannerRoute
863
1086
  });
864
1087
 
1088
+ //#endregion
1089
+ //#region src/contract/routes/merchant-integrations.ts
1090
+ const connectIntegrationRoute = oc.route({
1091
+ method: "POST",
1092
+ path: "/connect",
1093
+ summary: "Connect merchant integration",
1094
+ description: "Connect a merchant integration (delivery or POS). For OAuth providers, returns authorization URL. For static providers, stores credentials.",
1095
+ tags: ["merchant-integrations"]
1096
+ }).input(connectIntegrationInputSchema).output(connectIntegrationOutputSchema).errors(deliveryErrors);
1097
+ const disconnectIntegrationRoute = oc.route({
1098
+ method: "DELETE",
1099
+ path: "/:merchantId/:provider",
1100
+ summary: "Disconnect merchant integration",
1101
+ description: "Disconnect a merchant integration. For OAuth providers, revokes tokens. For static providers, removes credentials.",
1102
+ tags: ["merchant-integrations"]
1103
+ }).input(disconnectIntegrationInputSchema).output(z.void()).errors(deliveryErrors);
1104
+ const getIntegrationRoute = oc.route({
1105
+ method: "GET",
1106
+ path: "/:merchantId/:provider",
1107
+ summary: "Get merchant integration",
1108
+ description: "Get a specific merchant integration (delivery or POS) for a merchant",
1109
+ tags: ["merchant-integrations"]
1110
+ }).input(getIntegrationInputSchema).output(getIntegrationOutputSchema).errors(deliveryErrors);
1111
+ const listIntegrationsRoute = oc.route({
1112
+ method: "GET",
1113
+ path: "/:merchantId",
1114
+ summary: "List merchant integrations",
1115
+ description: "Get all merchant integrations (delivery and POS) for a merchant",
1116
+ tags: ["merchant-integrations"]
1117
+ }).input(listIntegrationsInputSchema).output(listIntegrationsOutputSchema).errors(deliveryErrors);
1118
+ const setIntegrationStatusRoute = oc.route({
1119
+ method: "PATCH",
1120
+ path: "/:integrationId/status",
1121
+ summary: "Set integration status",
1122
+ description: "Enable or disable a merchant integration (active/inactive)",
1123
+ tags: ["merchant-integrations"]
1124
+ }).input(setIntegrationStatusInputSchema).output(setIntegrationStatusOutputSchema).errors(deliveryErrors);
1125
+ const deleteIntegrationRoute = oc.route({
1126
+ method: "DELETE",
1127
+ path: "/:integrationId",
1128
+ summary: "Delete merchant integration",
1129
+ description: "Remove a merchant integration by ID",
1130
+ tags: ["merchant-integrations"]
1131
+ }).input(deleteIntegrationInputSchema).output(z.void()).errors(deliveryErrors);
1132
+ const integrateLocationRoute = oc.route({
1133
+ method: "POST",
1134
+ path: "/locations",
1135
+ summary: "Integrate location with delivery provider",
1136
+ description: "Register a merchant location with a delivery provider that requires location integration (e.g., LEAJLAK)",
1137
+ tags: ["merchant-integrations", "locations"]
1138
+ }).input(integrateLocationInputSchema).output(integrateLocationOutputSchema).errors(deliveryErrors);
1139
+ const locationsRouter = oc.prefix("/locations").router({ create: integrateLocationRoute });
1140
+ const merchantIntegrationsRouter = oc.router({
1141
+ connect: connectIntegrationRoute,
1142
+ disconnect: disconnectIntegrationRoute,
1143
+ get: getIntegrationRoute,
1144
+ list: listIntegrationsRoute,
1145
+ setStatus: setIntegrationStatusRoute,
1146
+ delete: deleteIntegrationRoute,
1147
+ locations: locationsRouter
1148
+ });
1149
+
865
1150
  //#endregion
866
1151
  //#region src/contract/routes/merchants.ts
867
1152
  const merchantSyncRoute = oc.route({
@@ -870,22 +1155,29 @@ const merchantSyncRoute = oc.route({
870
1155
  }).input(z.void()).output(merchantSyncEventSchema);
871
1156
  const getMerchantRoute = oc.route({
872
1157
  method: "GET",
873
- path: "/:merchantId",
1158
+ path: "/{merchantId}",
874
1159
  summary: "Get merchant",
875
- description: "Get merchant details with legal details",
1160
+ description: "Get merchant details with legal details. Merchants can omit merchantId to get their own details. Admins must provide merchantId.",
876
1161
  tags: ["merchants"]
877
- }).input(merchantIdInputSchema).output(merchantFullDetailsSchema);
1162
+ }).input(getMerchantInputSchema).output(merchantFullDetailsSchema);
878
1163
  const createMerchantRoute = oc.route({
879
1164
  method: "POST",
880
1165
  path: "/"
881
1166
  }).input(createMerchantInputSchema).output(createMerchantOutputSchema);
882
- const linkSquareIntegrationRouteForMerchantRoute = oc.route({
1167
+ const updateMerchantRoute = oc.route({
1168
+ method: "PUT",
1169
+ path: "/:merchantId",
1170
+ summary: "Update merchant",
1171
+ description: "Update merchant details (name, description, logo, banner, contact info)",
1172
+ tags: ["merchants"]
1173
+ }).input(updateMerchantInputSchema).output(merchantBaseSchema);
1174
+ const deleteMerchantAccountRoute = oc.route({
883
1175
  method: "POST",
884
- path: "/square/link",
885
- summary: "Link Square integration",
886
- description: "Link a Square integration to a merchant",
887
- tags: ["merchants", "square"]
888
- }).input(linkSquareIntegrationInputSchema).output(linkSquareIntegrationOutputSchema);
1176
+ path: "/delete-account",
1177
+ summary: "Soft delete merchant account",
1178
+ description: "Soft delete the authenticated merchant account after password confirmation. Better Auth user/account records are preserved.",
1179
+ tags: ["merchants"]
1180
+ }).input(deleteMerchantAccountInputSchema).output(deleteMerchantAccountOutputSchema);
889
1181
  const listMerchantsRoute = oc.route({
890
1182
  method: "GET",
891
1183
  path: "/",
@@ -924,56 +1216,18 @@ const deleteMerchantSocialRoute = oc.route({
924
1216
  description: "Delete a social account for a merchant",
925
1217
  tags: ["merchants", "socials"]
926
1218
  }).input(merchantIdInputSchema.merge(z.object({ socialId: z.uuid() }))).output(z.void());
927
- const createMerchantLegalDetailsRoute = oc.route({
928
- method: "POST",
929
- path: "/:merchantId/legal",
930
- summary: "Create merchant legal details",
931
- description: "Create legal details for a merchant (one-to-one relationship)",
932
- tags: ["merchants", "legal"]
933
- }).input(createMerchantLegalDetailsInputSchema).output(merchantLegalDetailsSchema);
934
- const getMerchantLegalDetailsRoute = oc.route({
935
- method: "GET",
936
- path: "/:merchantId/legal",
937
- summary: "Get merchant legal details",
938
- description: "Get legal details for a merchant",
939
- tags: ["merchants", "legal"]
940
- }).input(merchantIdInputSchema).output(merchantLegalDetailsSchema.nullable());
941
- const updateMerchantLegalDetailsRoute = oc.route({
942
- method: "PUT",
943
- path: "/:merchantId/legal",
944
- summary: "Update merchant legal details",
945
- description: "Update legal details for a merchant",
946
- tags: ["merchants", "legal"]
947
- }).input(updateMerchantLegalDetailsInputSchema).output(merchantLegalDetailsSchema);
948
- const deleteMerchantLegalDetailsRoute = oc.route({
949
- method: "DELETE",
950
- path: "/:merchantId/legal",
951
- summary: "Delete merchant legal details",
952
- description: "Delete legal details for a merchant",
953
- tags: ["merchants", "legal"]
954
- }).input(merchantIdInputSchema).output(z.void());
955
1219
  const uploadCrnDocumentRoute = oc.route({
956
1220
  method: "POST",
957
- path: "/:merchantId/legal/upload-crn",
1221
+ path: "/:merchantId/upload-crn",
958
1222
  summary: "Upload CRN document",
959
- description: "Upload or replace CRN document (PDF or image) for merchant legal details",
960
- tags: ["merchants", "legal"]
961
- }).input(uploadCrnDocumentInputSchema).output(z.string());
1223
+ tags: ["merchants"]
1224
+ }).input(uploadMerchantCrnDocInputSchema).output(z.string());
962
1225
  const uploadVatDocumentRoute = oc.route({
963
1226
  method: "POST",
964
- path: "/:merchantId/legal/upload-vat",
1227
+ path: "/:merchantId/upload-vat",
965
1228
  summary: "Upload VAT document",
966
- description: "Upload or replace VAT document (PDF or image) for merchant legal details",
967
- tags: ["merchants", "legal"]
968
- }).input(uploadVatDocumentInputSchema).output(z.string());
969
- const merchantLegalDetailsRouter = oc.prefix("/:merchantId/legal").router({
970
- create: createMerchantLegalDetailsRoute,
971
- get: getMerchantLegalDetailsRoute,
972
- update: updateMerchantLegalDetailsRoute,
973
- delete: deleteMerchantLegalDetailsRoute,
974
- uploadCrn: uploadCrnDocumentRoute,
975
- uploadVat: uploadVatDocumentRoute
976
- });
1229
+ tags: ["merchants"]
1230
+ }).input(uploadMerchantVatDocInputSchema).output(z.string());
977
1231
  const merchantInvoicesRouter = oc.prefix("/invoices").router({
978
1232
  create: merchantInvoicesRoutes.create,
979
1233
  send: merchantInvoicesRoutes.send,
@@ -986,16 +1240,20 @@ const merchantSocialsRouter = oc.prefix("/:merchantId/socials").router({
986
1240
  update: updateMerchantSocialRoute,
987
1241
  delete: deleteMerchantSocialRoute
988
1242
  });
1243
+ const merchantIntegrationsPrefix = oc.prefix("/integrations").router(merchantIntegrationsRouter);
989
1244
  const merchantsRouter = oc.router({
990
1245
  create: createMerchantRoute,
991
1246
  get: getMerchantRoute,
1247
+ update: updateMerchantRoute,
1248
+ deleteAccount: deleteMerchantAccountRoute,
992
1249
  list: listMerchantsRoute,
993
1250
  syncSquare: merchantSyncRoute,
994
- linkSquareIntegration: linkSquareIntegrationRouteForMerchantRoute,
995
1251
  invoices: merchantInvoicesRouter,
996
1252
  chats: merchantChatsRouter,
997
1253
  socials: merchantSocialsRouter,
998
- legal: merchantLegalDetailsRouter
1254
+ uploadCrn: uploadCrnDocumentRoute,
1255
+ uploadVat: uploadVatDocumentRoute,
1256
+ integrations: merchantIntegrationsPrefix
999
1257
  });
1000
1258
 
1001
1259
  //#endregion
@@ -1106,9 +1364,14 @@ const getPaymentRoute = oc.route({
1106
1364
  method: "GET",
1107
1365
  path: "/:paymentId"
1108
1366
  }).input(getPaymentInputSchema).output(paymentOutputSchema);
1367
+ const setPaidRoute = oc.route({
1368
+ method: "POST",
1369
+ path: "/:paymentId/set-paid"
1370
+ }).input(setPaidInputSchema).output(setPaidOutputSchema);
1109
1371
  const paymentsRouter = oc.router({
1110
1372
  list: listPaymentsRoute,
1111
- get: getPaymentRoute
1373
+ get: getPaymentRoute,
1374
+ setPaid: setPaidRoute
1112
1375
  });
1113
1376
 
1114
1377
  //#endregion
@@ -1146,6 +1409,120 @@ const promocodesRouter = oc.router({
1146
1409
  validate: validatePromoCodeRoute
1147
1410
  });
1148
1411
 
1412
+ //#endregion
1413
+ //#region src/contract/routes/service-charges.ts
1414
+ const listServiceChargesRoute = oc.route({
1415
+ method: "GET",
1416
+ path: "/"
1417
+ }).input(listServiceChargesInputSchema).output(serviceChargeListOutputSchema);
1418
+ const createServiceChargeRoute = oc.route({
1419
+ method: "POST",
1420
+ path: "/"
1421
+ }).input(createServiceChargeInputSchema).output(serviceChargeOutputSchema);
1422
+ const updateServiceChargeRoute = oc.route({
1423
+ method: "PUT",
1424
+ path: "/:serviceChargeId"
1425
+ }).input(updateServiceChargeInputSchema).output(serviceChargeOutputSchema);
1426
+ const deleteServiceChargeRoute = oc.route({
1427
+ method: "DELETE",
1428
+ path: "/:serviceChargeId"
1429
+ }).input(serviceChargeIdInputSchema).output(z.void());
1430
+ const getServiceChargeRoute = oc.route({
1431
+ method: "GET",
1432
+ path: "/:serviceChargeId"
1433
+ }).input(serviceChargeIdInputSchema).output(serviceChargeOutputSchema);
1434
+ const serviceChargesRouter = oc.router({
1435
+ list: listServiceChargesRoute,
1436
+ create: createServiceChargeRoute,
1437
+ update: updateServiceChargeRoute,
1438
+ delete: deleteServiceChargeRoute,
1439
+ get: getServiceChargeRoute
1440
+ });
1441
+
1442
+ //#endregion
1443
+ //#region src/contract/routes/taxes.ts
1444
+ const listTaxesRoute = oc.route({
1445
+ method: "GET",
1446
+ path: "/"
1447
+ }).input(listTaxesInputSchema).output(taxListOutputSchema);
1448
+ const createTaxRoute = oc.route({
1449
+ method: "POST",
1450
+ path: "/"
1451
+ }).input(createTaxInputSchema).output(taxOutputSchema);
1452
+ const updateTaxRoute = oc.route({
1453
+ method: "PUT",
1454
+ path: "/:taxId"
1455
+ }).input(updateTaxInputSchema).output(taxOutputSchema);
1456
+ const deleteTaxRoute = oc.route({
1457
+ method: "DELETE",
1458
+ path: "/:taxId"
1459
+ }).input(taxIdInputSchema).output(z.void());
1460
+ const getTaxRoute = oc.route({
1461
+ method: "GET",
1462
+ path: "/:taxId"
1463
+ }).input(taxIdInputSchema).output(taxOutputSchema);
1464
+ const taxesRouter = oc.router({
1465
+ list: listTaxesRoute,
1466
+ create: createTaxRoute,
1467
+ update: updateTaxRoute,
1468
+ delete: deleteTaxRoute,
1469
+ get: getTaxRoute
1470
+ });
1471
+
1472
+ //#endregion
1473
+ //#region src/contract/routes/zatca.ts
1474
+ const onboardEgsRoute = oc.route({
1475
+ method: "POST",
1476
+ path: "/egs/onboard",
1477
+ summary: "Onboard EGS device",
1478
+ tags: ["zatca"]
1479
+ }).input(onboardEgsInputSchema).output(onboardEgsOutputSchema);
1480
+ const reportInvoiceRoute = oc.route({
1481
+ method: "POST",
1482
+ path: "/invoices/report",
1483
+ summary: "Report invoice to ZATCA",
1484
+ tags: ["zatca"]
1485
+ }).input(reportInvoiceInputSchema).output(reportInvoiceOutputSchema);
1486
+ const batchReportInvoicesRoute = oc.route({
1487
+ method: "POST",
1488
+ path: "/invoices/batch-report",
1489
+ summary: "Batch report invoices to ZATCA",
1490
+ tags: ["zatca"]
1491
+ }).input(batchReportInputSchema).output(batchReportOutputSchema);
1492
+ const syncInvoicesRoute = oc.route({
1493
+ method: "POST",
1494
+ path: "/invoices/sync",
1495
+ summary: "Sync invoices from POS",
1496
+ tags: ["zatca"]
1497
+ }).input(syncInvoicesInputSchema).output(batchReportOutputSchema);
1498
+ const getEgsStatusRoute = oc.route({
1499
+ method: "GET",
1500
+ path: "/egs/:egsId/status",
1501
+ summary: "Get EGS status",
1502
+ tags: ["zatca"]
1503
+ }).input(z.object({ egsId: z.uuid() })).output(egsStatusOutputSchema);
1504
+ const getOnboardingDataRoute = oc.route({
1505
+ method: "GET",
1506
+ path: "/onboarding-data",
1507
+ summary: "Get ZATCA onboarding auto-fill data",
1508
+ tags: ["zatca"]
1509
+ }).input(z.void()).output(onboardingDataOutputSchema);
1510
+ const getInvoiceByPaymentRoute = oc.route({
1511
+ method: "GET",
1512
+ path: "/invoices/by-payment/:paymentId",
1513
+ summary: "Get invoice by payment ID",
1514
+ tags: ["zatca"]
1515
+ }).input(z.object({ paymentId: z.string().uuid() })).output(invoiceByPaymentOutputSchema);
1516
+ const zatcaRouter = oc.router({
1517
+ onboardEgs: onboardEgsRoute,
1518
+ reportInvoice: reportInvoiceRoute,
1519
+ batchReportInvoices: batchReportInvoicesRoute,
1520
+ syncInvoices: syncInvoicesRoute,
1521
+ getEgsStatus: getEgsStatusRoute,
1522
+ getOnboardingData: getOnboardingDataRoute,
1523
+ getInvoiceByPayment: getInvoiceByPaymentRoute
1524
+ });
1525
+
1149
1526
  //#endregion
1150
1527
  //#region src/contract/index.ts
1151
1528
  const healthCheckContract = oc.route({
@@ -1156,7 +1533,7 @@ const appContract = {
1156
1533
  healthCheck: healthCheckContract,
1157
1534
  customers: customersRouter,
1158
1535
  merchants: merchantsRouter,
1159
- locations: locationsRouter,
1536
+ locations: locationsRouter$1,
1160
1537
  catalog: catalogRouter,
1161
1538
  orders: ordersRouter,
1162
1539
  promocodes: promocodesRouter,
@@ -1164,10 +1541,15 @@ const appContract = {
1164
1541
  banners: bannersRouter,
1165
1542
  messages: messagesRouterContract,
1166
1543
  notifications: notificationsRouter,
1544
+ devices: devicesRouter,
1167
1545
  billing: billingRouter,
1168
1546
  payments: paymentsRouter,
1169
1547
  payouts: payoutsRouter,
1170
- leads: leadsRouter
1548
+ leads: leadsRouter,
1549
+ deliveries: deliveriesRouter,
1550
+ zatca: zatcaRouter,
1551
+ taxes: taxesRouter,
1552
+ serviceCharges: serviceChargesRouter
1171
1553
  };
1172
1554
 
1173
1555
  //#endregion
@@ -1195,4 +1577,4 @@ function getBaseUrl() {
1195
1577
  }
1196
1578
 
1197
1579
  //#endregion
1198
- export { FulfillmentStateMachine, FulfillmentStateValues, TerminalStates, appContract, assertCanTransition, canTransition, createMyApi, getAllowedTransitions, getAllowedUserTransitions, isTerminalState };
1580
+ export { FulfillmentStateMachine, FulfillmentStateValues, STATUS_LABELS, TerminalStates, appContract, assertCanTransition, canTransition, createMyApi, deliveryErrors, deliveryOperationSchema, getAllowedTransitions, getAllowedUserTransitions, getAvailableUserTransitions, isTerminalState };