@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/fulfillment-states.d.mts +43 -3
- package/dist/fulfillment-states.mjs +67 -2
- package/dist/index.d.mts +2673 -317
- package/dist/index.mjs +450 -68
- package/dist/{orders-yFOPRYZw.d.mts → orders-CHXvc7L7.d.mts} +810 -255
- package/dist/payments-Qea5Yb_X.d.mts +387 -0
- package/dist/schema/index.d.mts +1266 -554
- package/dist/schema/index.mjs +2 -2
- package/dist/utils/payment-resolver.d.mts +87 -0
- package/dist/utils/payment-resolver.mjs +118 -0
- package/dist/{schema-0qCwa7QX.mjs → zatca-CEInGWOH.mjs} +761 -274
- package/package.json +9 -3
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { $
|
|
2
|
-
import
|
|
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(
|
|
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
|
|
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: "
|
|
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(
|
|
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
|
|
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: "/
|
|
885
|
-
summary: "
|
|
886
|
-
description: "
|
|
887
|
-
tags: ["merchants"
|
|
888
|
-
}).input(
|
|
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/
|
|
1221
|
+
path: "/:merchantId/upload-crn",
|
|
958
1222
|
summary: "Upload CRN document",
|
|
959
|
-
|
|
960
|
-
|
|
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/
|
|
1227
|
+
path: "/:merchantId/upload-vat",
|
|
965
1228
|
summary: "Upload VAT document",
|
|
966
|
-
|
|
967
|
-
|
|
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
|
-
|
|
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 };
|