@offerkit/sdk 0.2.3 → 0.2.4
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/README.md +84 -0
- package/dist/index.d.mts +478 -312
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +219 -139
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -4
package/dist/index.mjs
CHANGED
|
@@ -38,8 +38,9 @@ const apiKeys = {
|
|
|
38
38
|
revoke: oc.route({
|
|
39
39
|
method: "DELETE",
|
|
40
40
|
path: "/api-keys/{id}",
|
|
41
|
-
summary: "Disable an API key (cannot be re-enabled)"
|
|
42
|
-
|
|
41
|
+
summary: "Disable an API key (cannot be re-enabled)",
|
|
42
|
+
inputStructure: "detailed"
|
|
43
|
+
}).input(z.object({ params: z.object({ id: z.string() }) })).output(z.object({ ok: z.literal(true) }))
|
|
43
44
|
};
|
|
44
45
|
//#endregion
|
|
45
46
|
//#region ../contract/src/mcp.ts
|
|
@@ -140,8 +141,9 @@ const campaigns = {
|
|
|
140
141
|
})).route({
|
|
141
142
|
method: "GET",
|
|
142
143
|
path: "/campaigns/{id}",
|
|
143
|
-
summary: "Get campaign"
|
|
144
|
-
|
|
144
|
+
summary: "Get campaign",
|
|
145
|
+
inputStructure: "detailed"
|
|
146
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(campaignOutput),
|
|
145
147
|
create: oc.route({
|
|
146
148
|
method: "POST",
|
|
147
149
|
path: "/campaigns",
|
|
@@ -150,16 +152,18 @@ const campaigns = {
|
|
|
150
152
|
update: oc.route({
|
|
151
153
|
method: "PATCH",
|
|
152
154
|
path: "/campaigns/{id}",
|
|
153
|
-
summary: "Update campaign"
|
|
155
|
+
summary: "Update campaign",
|
|
156
|
+
inputStructure: "detailed"
|
|
154
157
|
}).input(z.object({
|
|
155
|
-
id: z.string().uuid(),
|
|
156
|
-
patch: campaignUpdateInput
|
|
158
|
+
params: z.object({ id: z.string().uuid() }),
|
|
159
|
+
body: z.object({ patch: campaignUpdateInput })
|
|
157
160
|
})).output(campaignOutput),
|
|
158
161
|
delete: oc.route({
|
|
159
162
|
method: "DELETE",
|
|
160
163
|
path: "/campaigns/{id}",
|
|
161
|
-
summary: "Soft-delete campaign"
|
|
162
|
-
|
|
164
|
+
summary: "Soft-delete campaign",
|
|
165
|
+
inputStructure: "detailed"
|
|
166
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(z.object({ ok: z.literal(true) }))
|
|
163
167
|
};
|
|
164
168
|
//#endregion
|
|
165
169
|
//#region ../contract/src/schemas/customer.ts
|
|
@@ -226,16 +230,18 @@ const customers = {
|
|
|
226
230
|
})).route({
|
|
227
231
|
method: "GET",
|
|
228
232
|
path: "/customers/{id}",
|
|
229
|
-
summary: "Get customer"
|
|
230
|
-
|
|
233
|
+
summary: "Get customer",
|
|
234
|
+
inputStructure: "detailed"
|
|
235
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(customerOutput),
|
|
231
236
|
getByExternalId: oc.meta(mcpMeta({
|
|
232
237
|
expose: true,
|
|
233
238
|
riskLevel: "safe"
|
|
234
239
|
})).route({
|
|
235
240
|
method: "GET",
|
|
236
241
|
path: "/customers/by-external-id/{externalId}",
|
|
237
|
-
summary: "Get a customer by integrator-supplied externalId"
|
|
238
|
-
|
|
242
|
+
summary: "Get a customer by integrator-supplied externalId",
|
|
243
|
+
inputStructure: "detailed"
|
|
244
|
+
}).input(z.object({ params: z.object({ externalId: z.string().min(1).max(256) }) })).output(customerOutput),
|
|
239
245
|
create: oc.route({
|
|
240
246
|
method: "POST",
|
|
241
247
|
path: "/customers",
|
|
@@ -249,16 +255,18 @@ const customers = {
|
|
|
249
255
|
update: oc.route({
|
|
250
256
|
method: "PATCH",
|
|
251
257
|
path: "/customers/{id}",
|
|
252
|
-
summary: "Update customer"
|
|
258
|
+
summary: "Update customer",
|
|
259
|
+
inputStructure: "detailed"
|
|
253
260
|
}).input(z.object({
|
|
254
|
-
id: z.string().uuid(),
|
|
255
|
-
patch: customerUpdateInput
|
|
261
|
+
params: z.object({ id: z.string().uuid() }),
|
|
262
|
+
body: z.object({ patch: customerUpdateInput })
|
|
256
263
|
})).output(customerOutput),
|
|
257
264
|
delete: oc.route({
|
|
258
265
|
method: "DELETE",
|
|
259
266
|
path: "/customers/{id}",
|
|
260
|
-
summary: "Soft-delete customer"
|
|
261
|
-
|
|
267
|
+
summary: "Soft-delete customer",
|
|
268
|
+
inputStructure: "detailed"
|
|
269
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(z.object({ ok: z.literal(true) }))
|
|
262
270
|
};
|
|
263
271
|
//#endregion
|
|
264
272
|
//#region ../contract/src/schemas/loyalty.ts
|
|
@@ -416,8 +424,9 @@ const loyalty = {
|
|
|
416
424
|
get: oc.route({
|
|
417
425
|
method: "GET",
|
|
418
426
|
path: "/loyalty/programs/{id}",
|
|
419
|
-
summary: "Get loyalty program"
|
|
420
|
-
|
|
427
|
+
summary: "Get loyalty program",
|
|
428
|
+
inputStructure: "detailed"
|
|
429
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(loyaltyProgramOutput),
|
|
421
430
|
create: oc.route({
|
|
422
431
|
method: "POST",
|
|
423
432
|
path: "/loyalty/programs",
|
|
@@ -426,23 +435,26 @@ const loyalty = {
|
|
|
426
435
|
update: oc.route({
|
|
427
436
|
method: "PATCH",
|
|
428
437
|
path: "/loyalty/programs/{id}",
|
|
429
|
-
summary: "Update loyalty program"
|
|
438
|
+
summary: "Update loyalty program",
|
|
439
|
+
inputStructure: "detailed"
|
|
430
440
|
}).input(z.object({
|
|
431
|
-
id: z.string().uuid(),
|
|
432
|
-
patch: loyaltyProgramUpdateInput
|
|
441
|
+
params: z.object({ id: z.string().uuid() }),
|
|
442
|
+
body: z.object({ patch: loyaltyProgramUpdateInput })
|
|
433
443
|
})).output(loyaltyProgramOutput),
|
|
434
444
|
delete: oc.route({
|
|
435
445
|
method: "DELETE",
|
|
436
446
|
path: "/loyalty/programs/{id}",
|
|
437
|
-
summary: "Soft-delete program"
|
|
438
|
-
|
|
447
|
+
summary: "Soft-delete program",
|
|
448
|
+
inputStructure: "detailed"
|
|
449
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(z.object({ ok: z.literal(true) }))
|
|
439
450
|
},
|
|
440
451
|
tiers: {
|
|
441
452
|
list: oc.route({
|
|
442
453
|
method: "GET",
|
|
443
454
|
path: "/loyalty/programs/{programId}/tiers",
|
|
444
|
-
summary: "List tiers"
|
|
445
|
-
|
|
455
|
+
summary: "List tiers",
|
|
456
|
+
inputStructure: "detailed"
|
|
457
|
+
}).input(z.object({ params: z.object({ programId: z.string().uuid() }) })).output(z.object({ data: z.array(loyaltyTierOutput) })),
|
|
446
458
|
create: oc.route({
|
|
447
459
|
method: "POST",
|
|
448
460
|
path: "/loyalty/tiers",
|
|
@@ -451,23 +463,26 @@ const loyalty = {
|
|
|
451
463
|
update: oc.route({
|
|
452
464
|
method: "PATCH",
|
|
453
465
|
path: "/loyalty/tiers/{id}",
|
|
454
|
-
summary: "Update tier"
|
|
466
|
+
summary: "Update tier",
|
|
467
|
+
inputStructure: "detailed"
|
|
455
468
|
}).input(z.object({
|
|
456
|
-
id: z.string().uuid(),
|
|
457
|
-
patch: loyaltyTierUpdateInput
|
|
469
|
+
params: z.object({ id: z.string().uuid() }),
|
|
470
|
+
body: z.object({ patch: loyaltyTierUpdateInput })
|
|
458
471
|
})).output(loyaltyTierOutput),
|
|
459
472
|
delete: oc.route({
|
|
460
473
|
method: "DELETE",
|
|
461
474
|
path: "/loyalty/tiers/{id}",
|
|
462
|
-
summary: "Delete tier"
|
|
463
|
-
|
|
475
|
+
summary: "Delete tier",
|
|
476
|
+
inputStructure: "detailed"
|
|
477
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(z.object({ ok: z.literal(true) }))
|
|
464
478
|
},
|
|
465
479
|
earningRules: {
|
|
466
480
|
list: oc.route({
|
|
467
481
|
method: "GET",
|
|
468
482
|
path: "/loyalty/programs/{programId}/earning-rules",
|
|
469
|
-
summary: "List earning rules"
|
|
470
|
-
|
|
483
|
+
summary: "List earning rules",
|
|
484
|
+
inputStructure: "detailed"
|
|
485
|
+
}).input(z.object({ params: z.object({ programId: z.string().uuid() }) })).output(z.object({ data: z.array(loyaltyEarningRuleOutput) })),
|
|
471
486
|
create: oc.route({
|
|
472
487
|
method: "POST",
|
|
473
488
|
path: "/loyalty/earning-rules",
|
|
@@ -476,23 +491,26 @@ const loyalty = {
|
|
|
476
491
|
update: oc.route({
|
|
477
492
|
method: "PATCH",
|
|
478
493
|
path: "/loyalty/earning-rules/{id}",
|
|
479
|
-
summary: "Update earning rule"
|
|
494
|
+
summary: "Update earning rule",
|
|
495
|
+
inputStructure: "detailed"
|
|
480
496
|
}).input(z.object({
|
|
481
|
-
id: z.string().uuid(),
|
|
482
|
-
patch: loyaltyEarningRuleUpdateInput
|
|
497
|
+
params: z.object({ id: z.string().uuid() }),
|
|
498
|
+
body: z.object({ patch: loyaltyEarningRuleUpdateInput })
|
|
483
499
|
})).output(loyaltyEarningRuleOutput),
|
|
484
500
|
delete: oc.route({
|
|
485
501
|
method: "DELETE",
|
|
486
502
|
path: "/loyalty/earning-rules/{id}",
|
|
487
|
-
summary: "Delete earning rule"
|
|
488
|
-
|
|
503
|
+
summary: "Delete earning rule",
|
|
504
|
+
inputStructure: "detailed"
|
|
505
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(z.object({ ok: z.literal(true) }))
|
|
489
506
|
},
|
|
490
507
|
rewards: {
|
|
491
508
|
list: oc.route({
|
|
492
509
|
method: "GET",
|
|
493
510
|
path: "/loyalty/programs/{programId}/rewards",
|
|
494
|
-
summary: "List rewards"
|
|
495
|
-
|
|
511
|
+
summary: "List rewards",
|
|
512
|
+
inputStructure: "detailed"
|
|
513
|
+
}).input(z.object({ params: z.object({ programId: z.string().uuid() }) })).output(z.object({ data: z.array(loyaltyRewardOutput) })),
|
|
496
514
|
create: oc.route({
|
|
497
515
|
method: "POST",
|
|
498
516
|
path: "/loyalty/rewards",
|
|
@@ -501,28 +519,35 @@ const loyalty = {
|
|
|
501
519
|
update: oc.route({
|
|
502
520
|
method: "PATCH",
|
|
503
521
|
path: "/loyalty/rewards/{id}",
|
|
504
|
-
summary: "Update reward"
|
|
522
|
+
summary: "Update reward",
|
|
523
|
+
inputStructure: "detailed"
|
|
505
524
|
}).input(z.object({
|
|
506
|
-
id: z.string().uuid(),
|
|
507
|
-
patch: loyaltyRewardUpdateInput
|
|
525
|
+
params: z.object({ id: z.string().uuid() }),
|
|
526
|
+
body: z.object({ patch: loyaltyRewardUpdateInput })
|
|
508
527
|
})).output(loyaltyRewardOutput),
|
|
509
528
|
delete: oc.route({
|
|
510
529
|
method: "DELETE",
|
|
511
530
|
path: "/loyalty/rewards/{id}",
|
|
512
|
-
summary: "Soft-delete reward"
|
|
513
|
-
|
|
531
|
+
summary: "Soft-delete reward",
|
|
532
|
+
inputStructure: "detailed"
|
|
533
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(z.object({ ok: z.literal(true) }))
|
|
514
534
|
},
|
|
515
535
|
members: {
|
|
516
536
|
list: oc.route({
|
|
517
537
|
method: "GET",
|
|
518
538
|
path: "/loyalty/programs/{programId}/members",
|
|
519
|
-
summary: "List members of a program"
|
|
520
|
-
|
|
539
|
+
summary: "List members of a program",
|
|
540
|
+
inputStructure: "detailed"
|
|
541
|
+
}).input(z.object({
|
|
542
|
+
params: z.object({ programId: z.string().uuid() }),
|
|
543
|
+
query: paginationInput
|
|
544
|
+
})).output(paginatedOutput(loyaltyMemberOutput)),
|
|
521
545
|
get: oc.route({
|
|
522
546
|
method: "GET",
|
|
523
547
|
path: "/loyalty/members/{id}",
|
|
524
|
-
summary: "Get member"
|
|
525
|
-
|
|
548
|
+
summary: "Get member",
|
|
549
|
+
inputStructure: "detailed"
|
|
550
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(loyaltyMemberOutput),
|
|
526
551
|
enroll: oc.route({
|
|
527
552
|
method: "POST",
|
|
528
553
|
path: "/loyalty/members",
|
|
@@ -574,8 +599,9 @@ const loyalty = {
|
|
|
574
599
|
})).route({
|
|
575
600
|
method: "GET",
|
|
576
601
|
path: "/loyalty/members/{id}/transactions",
|
|
577
|
-
summary: "Member transaction ledger"
|
|
578
|
-
|
|
602
|
+
summary: "Member transaction ledger",
|
|
603
|
+
inputStructure: "detailed"
|
|
604
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(z.object({ data: z.array(loyaltyTransactionOutput) }))
|
|
579
605
|
}
|
|
580
606
|
};
|
|
581
607
|
//#endregion
|
|
@@ -690,8 +716,9 @@ const referrals = {
|
|
|
690
716
|
get: oc.route({
|
|
691
717
|
method: "GET",
|
|
692
718
|
path: "/referral-programs/{id}",
|
|
693
|
-
summary: "Get referral program"
|
|
694
|
-
|
|
719
|
+
summary: "Get referral program",
|
|
720
|
+
inputStructure: "detailed"
|
|
721
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(referralProgramOutput),
|
|
695
722
|
create: oc.route({
|
|
696
723
|
method: "POST",
|
|
697
724
|
path: "/referral-programs",
|
|
@@ -700,32 +727,43 @@ const referrals = {
|
|
|
700
727
|
update: oc.route({
|
|
701
728
|
method: "PATCH",
|
|
702
729
|
path: "/referral-programs/{id}",
|
|
703
|
-
summary: "Update referral program"
|
|
730
|
+
summary: "Update referral program",
|
|
731
|
+
inputStructure: "detailed"
|
|
704
732
|
}).input(z.object({
|
|
705
|
-
id: z.string().uuid(),
|
|
706
|
-
patch: referralProgramUpdateInput
|
|
733
|
+
params: z.object({ id: z.string().uuid() }),
|
|
734
|
+
body: z.object({ patch: referralProgramUpdateInput })
|
|
707
735
|
})).output(referralProgramOutput),
|
|
708
736
|
delete: oc.route({
|
|
709
737
|
method: "DELETE",
|
|
710
738
|
path: "/referral-programs/{id}",
|
|
711
|
-
summary: "Soft-delete referral program"
|
|
712
|
-
|
|
739
|
+
summary: "Soft-delete referral program",
|
|
740
|
+
inputStructure: "detailed"
|
|
741
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(z.object({ ok: z.literal(true) }))
|
|
713
742
|
},
|
|
714
743
|
listCodes: oc.route({
|
|
715
744
|
method: "GET",
|
|
716
745
|
path: "/referral-programs/{programId}/codes",
|
|
717
|
-
summary: "List referral codes in a program"
|
|
718
|
-
|
|
746
|
+
summary: "List referral codes in a program",
|
|
747
|
+
inputStructure: "detailed"
|
|
748
|
+
}).input(z.object({
|
|
749
|
+
params: z.object({ programId: z.string().uuid() }),
|
|
750
|
+
query: paginationInput
|
|
751
|
+
})).output(paginatedOutput(referralCodeOutput)),
|
|
719
752
|
listConversions: oc.route({
|
|
720
753
|
method: "GET",
|
|
721
754
|
path: "/referral-codes/{codeId}/conversions",
|
|
722
|
-
summary: "List conversions for a referral code"
|
|
723
|
-
|
|
755
|
+
summary: "List conversions for a referral code",
|
|
756
|
+
inputStructure: "detailed"
|
|
757
|
+
}).input(z.object({
|
|
758
|
+
params: z.object({ codeId: z.string().uuid() }),
|
|
759
|
+
query: paginationInput
|
|
760
|
+
})).output(paginatedOutput(referralConversionOutput)),
|
|
724
761
|
getByCode: oc.route({
|
|
725
762
|
method: "GET",
|
|
726
763
|
path: "/referrals/{code}",
|
|
727
|
-
summary: "Look up a referral code"
|
|
728
|
-
|
|
764
|
+
summary: "Look up a referral code",
|
|
765
|
+
inputStructure: "detailed"
|
|
766
|
+
}).input(z.object({ params: z.object({ code: z.string() }) })).output(referralCodeOutput),
|
|
729
767
|
issue: oc.route({
|
|
730
768
|
method: "POST",
|
|
731
769
|
path: "/referrals/issue",
|
|
@@ -1042,16 +1080,18 @@ const promotions = {
|
|
|
1042
1080
|
update: oc.route({
|
|
1043
1081
|
method: "PATCH",
|
|
1044
1082
|
path: "/promotions/tiers/{id}",
|
|
1045
|
-
summary: "Update promotion tier"
|
|
1083
|
+
summary: "Update promotion tier",
|
|
1084
|
+
inputStructure: "detailed"
|
|
1046
1085
|
}).input(z.object({
|
|
1047
|
-
id: z.string().uuid(),
|
|
1048
|
-
patch: promotionTierUpdateInput
|
|
1086
|
+
params: z.object({ id: z.string().uuid() }),
|
|
1087
|
+
body: z.object({ patch: promotionTierUpdateInput })
|
|
1049
1088
|
})).output(promotionTierOutput),
|
|
1050
1089
|
delete: oc.route({
|
|
1051
1090
|
method: "DELETE",
|
|
1052
1091
|
path: "/promotions/tiers/{id}",
|
|
1053
|
-
summary: "Soft-delete promotion tier"
|
|
1054
|
-
|
|
1092
|
+
summary: "Soft-delete promotion tier",
|
|
1093
|
+
inputStructure: "detailed"
|
|
1094
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(z.object({ ok: z.literal(true) }))
|
|
1055
1095
|
},
|
|
1056
1096
|
qualify: oc.meta(mcpMeta({
|
|
1057
1097
|
expose: true,
|
|
@@ -1091,8 +1131,9 @@ const rewardTypes = {
|
|
|
1091
1131
|
get: oc.route({
|
|
1092
1132
|
method: "GET",
|
|
1093
1133
|
path: "/reward-types/{id}",
|
|
1094
|
-
summary: "Get reward type"
|
|
1095
|
-
|
|
1134
|
+
summary: "Get reward type",
|
|
1135
|
+
inputStructure: "detailed"
|
|
1136
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(rewardTypeOutput),
|
|
1096
1137
|
create: oc.route({
|
|
1097
1138
|
method: "POST",
|
|
1098
1139
|
path: "/reward-types",
|
|
@@ -1101,16 +1142,18 @@ const rewardTypes = {
|
|
|
1101
1142
|
update: oc.route({
|
|
1102
1143
|
method: "PATCH",
|
|
1103
1144
|
path: "/reward-types/{id}",
|
|
1104
|
-
summary: "Update reward type"
|
|
1145
|
+
summary: "Update reward type",
|
|
1146
|
+
inputStructure: "detailed"
|
|
1105
1147
|
}).input(z.object({
|
|
1106
|
-
id: z.string().uuid(),
|
|
1107
|
-
patch: rewardTypeUpdateInput
|
|
1148
|
+
params: z.object({ id: z.string().uuid() }),
|
|
1149
|
+
body: z.object({ patch: rewardTypeUpdateInput })
|
|
1108
1150
|
})).output(rewardTypeOutput),
|
|
1109
1151
|
delete: oc.route({
|
|
1110
1152
|
method: "DELETE",
|
|
1111
1153
|
path: "/reward-types/{id}",
|
|
1112
|
-
summary: "Soft-delete reward type"
|
|
1113
|
-
|
|
1154
|
+
summary: "Soft-delete reward type",
|
|
1155
|
+
inputStructure: "detailed"
|
|
1156
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(z.object({ ok: z.literal(true) }))
|
|
1114
1157
|
};
|
|
1115
1158
|
//#endregion
|
|
1116
1159
|
//#region ../contract/src/schemas/segment.ts
|
|
@@ -1140,8 +1183,9 @@ const segments = {
|
|
|
1140
1183
|
get: oc.route({
|
|
1141
1184
|
method: "GET",
|
|
1142
1185
|
path: "/segments/{id}",
|
|
1143
|
-
summary: "Get segment"
|
|
1144
|
-
|
|
1186
|
+
summary: "Get segment",
|
|
1187
|
+
inputStructure: "detailed"
|
|
1188
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(segmentOutput),
|
|
1145
1189
|
create: oc.route({
|
|
1146
1190
|
method: "POST",
|
|
1147
1191
|
path: "/segments",
|
|
@@ -1150,16 +1194,18 @@ const segments = {
|
|
|
1150
1194
|
update: oc.route({
|
|
1151
1195
|
method: "PATCH",
|
|
1152
1196
|
path: "/segments/{id}",
|
|
1153
|
-
summary: "Update segment"
|
|
1197
|
+
summary: "Update segment",
|
|
1198
|
+
inputStructure: "detailed"
|
|
1154
1199
|
}).input(z.object({
|
|
1155
|
-
id: z.string().uuid(),
|
|
1156
|
-
patch: segmentUpdateInput
|
|
1200
|
+
params: z.object({ id: z.string().uuid() }),
|
|
1201
|
+
body: z.object({ patch: segmentUpdateInput })
|
|
1157
1202
|
})).output(segmentOutput),
|
|
1158
1203
|
delete: oc.route({
|
|
1159
1204
|
method: "DELETE",
|
|
1160
1205
|
path: "/segments/{id}",
|
|
1161
|
-
summary: "Soft-delete segment"
|
|
1162
|
-
|
|
1206
|
+
summary: "Soft-delete segment",
|
|
1207
|
+
inputStructure: "detailed"
|
|
1208
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(z.object({ ok: z.literal(true) })),
|
|
1163
1209
|
preview: oc.meta(mcpMeta({
|
|
1164
1210
|
expose: true,
|
|
1165
1211
|
riskLevel: "safe",
|
|
@@ -1211,8 +1257,9 @@ const validationRules = {
|
|
|
1211
1257
|
get: oc.route({
|
|
1212
1258
|
method: "GET",
|
|
1213
1259
|
path: "/validation-rules/{id}",
|
|
1214
|
-
summary: "Get validation rule"
|
|
1215
|
-
|
|
1260
|
+
summary: "Get validation rule",
|
|
1261
|
+
inputStructure: "detailed"
|
|
1262
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(validationRuleOutput),
|
|
1216
1263
|
create: oc.route({
|
|
1217
1264
|
method: "POST",
|
|
1218
1265
|
path: "/validation-rules",
|
|
@@ -1221,16 +1268,18 @@ const validationRules = {
|
|
|
1221
1268
|
update: oc.route({
|
|
1222
1269
|
method: "PATCH",
|
|
1223
1270
|
path: "/validation-rules/{id}",
|
|
1224
|
-
summary: "Update validation rule"
|
|
1271
|
+
summary: "Update validation rule",
|
|
1272
|
+
inputStructure: "detailed"
|
|
1225
1273
|
}).input(z.object({
|
|
1226
|
-
id: z.string().uuid(),
|
|
1227
|
-
patch: validationRuleUpdateInput
|
|
1274
|
+
params: z.object({ id: z.string().uuid() }),
|
|
1275
|
+
body: z.object({ patch: validationRuleUpdateInput })
|
|
1228
1276
|
})).output(validationRuleOutput),
|
|
1229
1277
|
delete: oc.route({
|
|
1230
1278
|
method: "DELETE",
|
|
1231
1279
|
path: "/validation-rules/{id}",
|
|
1232
|
-
summary: "Soft-delete validation rule"
|
|
1233
|
-
|
|
1280
|
+
summary: "Soft-delete validation rule",
|
|
1281
|
+
inputStructure: "detailed"
|
|
1282
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(z.object({ ok: z.literal(true) }))
|
|
1234
1283
|
};
|
|
1235
1284
|
//#endregion
|
|
1236
1285
|
//#region ../contract/src/routes/vouchers.ts
|
|
@@ -1254,8 +1303,9 @@ const vouchers = {
|
|
|
1254
1303
|
})).route({
|
|
1255
1304
|
method: "GET",
|
|
1256
1305
|
path: "/vouchers/{code}",
|
|
1257
|
-
summary: "Get voucher by code"
|
|
1258
|
-
|
|
1306
|
+
summary: "Get voucher by code",
|
|
1307
|
+
inputStructure: "detailed"
|
|
1308
|
+
}).input(z.object({ params: z.object({ code: z.string() }) })).output(voucherOutput),
|
|
1259
1309
|
create: oc.route({
|
|
1260
1310
|
method: "POST",
|
|
1261
1311
|
path: "/vouchers",
|
|
@@ -1264,16 +1314,18 @@ const vouchers = {
|
|
|
1264
1314
|
update: oc.route({
|
|
1265
1315
|
method: "PATCH",
|
|
1266
1316
|
path: "/vouchers/{code}",
|
|
1267
|
-
summary: "Update voucher"
|
|
1317
|
+
summary: "Update voucher",
|
|
1318
|
+
inputStructure: "detailed"
|
|
1268
1319
|
}).input(z.object({
|
|
1269
|
-
code: z.string(),
|
|
1270
|
-
patch: voucherUpdateInput
|
|
1320
|
+
params: z.object({ code: z.string() }),
|
|
1321
|
+
body: z.object({ patch: voucherUpdateInput })
|
|
1271
1322
|
})).output(voucherOutput),
|
|
1272
1323
|
delete: oc.route({
|
|
1273
1324
|
method: "DELETE",
|
|
1274
1325
|
path: "/vouchers/{code}",
|
|
1275
|
-
summary: "Soft-delete voucher"
|
|
1276
|
-
|
|
1326
|
+
summary: "Soft-delete voucher",
|
|
1327
|
+
inputStructure: "detailed"
|
|
1328
|
+
}).input(z.object({ params: z.object({ code: z.string() }) })).output(z.object({ ok: z.literal(true) })),
|
|
1277
1329
|
bulk: oc.route({
|
|
1278
1330
|
method: "POST",
|
|
1279
1331
|
path: "/vouchers/bulk",
|
|
@@ -1289,8 +1341,12 @@ const vouchers = {
|
|
|
1289
1341
|
})).route({
|
|
1290
1342
|
method: "POST",
|
|
1291
1343
|
path: "/vouchers/{code}/validate",
|
|
1292
|
-
summary: "Validate a voucher against an optional order context"
|
|
1293
|
-
|
|
1344
|
+
summary: "Validate a voucher against an optional order context",
|
|
1345
|
+
inputStructure: "detailed"
|
|
1346
|
+
}).input(z.object({
|
|
1347
|
+
params: z.object({ code: z.string().min(1) }),
|
|
1348
|
+
body: validateInput.omit({ code: true }).optional()
|
|
1349
|
+
})).output(validateOutput),
|
|
1294
1350
|
qualify: oc.meta(mcpMeta({
|
|
1295
1351
|
expose: true,
|
|
1296
1352
|
riskLevel: "safe"
|
|
@@ -1306,8 +1362,12 @@ const vouchers = {
|
|
|
1306
1362
|
})).route({
|
|
1307
1363
|
method: "POST",
|
|
1308
1364
|
path: "/vouchers/{code}/redemption",
|
|
1309
|
-
summary: "Redeem a voucher"
|
|
1310
|
-
|
|
1365
|
+
summary: "Redeem a voucher",
|
|
1366
|
+
inputStructure: "detailed"
|
|
1367
|
+
}).input(z.object({
|
|
1368
|
+
params: z.object({ code: z.string().min(1) }),
|
|
1369
|
+
body: redeemInput.omit({ code: true }).optional()
|
|
1370
|
+
})).output(redeemOutput),
|
|
1311
1371
|
stackRedeem: oc.meta(mcpMeta({
|
|
1312
1372
|
expose: true,
|
|
1313
1373
|
riskLevel: "mutating",
|
|
@@ -1320,8 +1380,9 @@ const vouchers = {
|
|
|
1320
1380
|
transactions: oc.route({
|
|
1321
1381
|
method: "GET",
|
|
1322
1382
|
path: "/vouchers/{code}/transactions",
|
|
1323
|
-
summary: "Gift card balance ledger"
|
|
1324
|
-
|
|
1383
|
+
summary: "Gift card balance ledger",
|
|
1384
|
+
inputStructure: "detailed"
|
|
1385
|
+
}).input(z.object({ params: z.object({ code: z.string() }) })).output(z.object({ data: z.array(z.object({
|
|
1325
1386
|
id: z.string().uuid(),
|
|
1326
1387
|
redemptionId: z.string().uuid().nullable(),
|
|
1327
1388
|
delta: z.number().int(),
|
|
@@ -1399,8 +1460,9 @@ const webhooks$1 = {
|
|
|
1399
1460
|
get: oc.route({
|
|
1400
1461
|
method: "GET",
|
|
1401
1462
|
path: "/webhooks/{id}",
|
|
1402
|
-
summary: "Get webhook"
|
|
1403
|
-
|
|
1463
|
+
summary: "Get webhook",
|
|
1464
|
+
inputStructure: "detailed"
|
|
1465
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(webhookOutput),
|
|
1404
1466
|
create: oc.route({
|
|
1405
1467
|
method: "POST",
|
|
1406
1468
|
path: "/webhooks",
|
|
@@ -1409,29 +1471,33 @@ const webhooks$1 = {
|
|
|
1409
1471
|
update: oc.route({
|
|
1410
1472
|
method: "PATCH",
|
|
1411
1473
|
path: "/webhooks/{id}",
|
|
1412
|
-
summary: "Update webhook"
|
|
1474
|
+
summary: "Update webhook",
|
|
1475
|
+
inputStructure: "detailed"
|
|
1413
1476
|
}).input(z.object({
|
|
1414
|
-
id: z.string().uuid(),
|
|
1415
|
-
patch: webhookUpdateInput
|
|
1477
|
+
params: z.object({ id: z.string().uuid() }),
|
|
1478
|
+
body: z.object({ patch: webhookUpdateInput })
|
|
1416
1479
|
})).output(webhookOutput),
|
|
1417
1480
|
delete: oc.route({
|
|
1418
1481
|
method: "DELETE",
|
|
1419
1482
|
path: "/webhooks/{id}",
|
|
1420
|
-
summary: "Soft-delete webhook"
|
|
1421
|
-
|
|
1483
|
+
summary: "Soft-delete webhook",
|
|
1484
|
+
inputStructure: "detailed"
|
|
1485
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(z.object({ ok: z.literal(true) })),
|
|
1422
1486
|
deliveries: oc.route({
|
|
1423
1487
|
method: "GET",
|
|
1424
1488
|
path: "/webhooks/{id}/deliveries",
|
|
1425
|
-
summary: "Recent deliveries for a webhook"
|
|
1489
|
+
summary: "Recent deliveries for a webhook",
|
|
1490
|
+
inputStructure: "detailed"
|
|
1426
1491
|
}).input(z.object({
|
|
1427
|
-
id: z.string().uuid(),
|
|
1428
|
-
limit: z.number().int().min(1).max(100).default(50)
|
|
1492
|
+
params: z.object({ id: z.string().uuid() }),
|
|
1493
|
+
query: z.object({ limit: z.number().int().min(1).max(100).default(50) })
|
|
1429
1494
|
})).output(z.object({ data: z.array(webhookDeliveryOutput) })),
|
|
1430
1495
|
replay: oc.route({
|
|
1431
1496
|
method: "POST",
|
|
1432
1497
|
path: "/webhooks/deliveries/{id}/replay",
|
|
1433
|
-
summary: "Re-enqueue a delivery (succeeded or otherwise)"
|
|
1434
|
-
|
|
1498
|
+
summary: "Re-enqueue a delivery (succeeded or otherwise)",
|
|
1499
|
+
inputStructure: "detailed"
|
|
1500
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(z.object({ ok: z.literal(true) }))
|
|
1435
1501
|
};
|
|
1436
1502
|
const events = {
|
|
1437
1503
|
list: oc.route({
|
|
@@ -1442,8 +1508,9 @@ const events = {
|
|
|
1442
1508
|
get: oc.route({
|
|
1443
1509
|
method: "GET",
|
|
1444
1510
|
path: "/events/{id}",
|
|
1445
|
-
summary: "Get event"
|
|
1446
|
-
|
|
1511
|
+
summary: "Get event",
|
|
1512
|
+
inputStructure: "detailed"
|
|
1513
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(eventOutput)
|
|
1447
1514
|
};
|
|
1448
1515
|
//#endregion
|
|
1449
1516
|
//#region ../contract/src/routes/insights.ts
|
|
@@ -1522,26 +1589,30 @@ const users = {
|
|
|
1522
1589
|
resetPassword: oc.route({
|
|
1523
1590
|
method: "POST",
|
|
1524
1591
|
path: "/users/{id}/reset-password",
|
|
1525
|
-
summary: "Reset a staff user's password (admin)"
|
|
1526
|
-
|
|
1592
|
+
summary: "Reset a staff user's password (admin)",
|
|
1593
|
+
inputStructure: "detailed"
|
|
1594
|
+
}).input(z.object({ params: z.object({ id: z.string() }) })).output(userCreateOutput),
|
|
1527
1595
|
setRole: oc.route({
|
|
1528
1596
|
method: "PATCH",
|
|
1529
1597
|
path: "/users/{id}/role",
|
|
1530
|
-
summary: "Change a staff user's role (admin)"
|
|
1598
|
+
summary: "Change a staff user's role (admin)",
|
|
1599
|
+
inputStructure: "detailed"
|
|
1531
1600
|
}).input(z.object({
|
|
1532
|
-
id: z.string(),
|
|
1533
|
-
role: userRole
|
|
1601
|
+
params: z.object({ id: z.string() }),
|
|
1602
|
+
body: z.object({ role: userRole })
|
|
1534
1603
|
})).output(userOutput),
|
|
1535
1604
|
disable: oc.route({
|
|
1536
1605
|
method: "POST",
|
|
1537
1606
|
path: "/users/{id}/disable",
|
|
1538
|
-
summary: "Disable a staff user (admin)"
|
|
1539
|
-
|
|
1607
|
+
summary: "Disable a staff user (admin)",
|
|
1608
|
+
inputStructure: "detailed"
|
|
1609
|
+
}).input(z.object({ params: z.object({ id: z.string() }) })).output(userOutput),
|
|
1540
1610
|
enable: oc.route({
|
|
1541
1611
|
method: "POST",
|
|
1542
1612
|
path: "/users/{id}/enable",
|
|
1543
|
-
summary: "Re-enable a staff user (admin)"
|
|
1544
|
-
|
|
1613
|
+
summary: "Re-enable a staff user (admin)",
|
|
1614
|
+
inputStructure: "detailed"
|
|
1615
|
+
}).input(z.object({ params: z.object({ id: z.string() }) })).output(userOutput)
|
|
1545
1616
|
};
|
|
1546
1617
|
//#endregion
|
|
1547
1618
|
//#region ../contract/src/schemas/order.ts
|
|
@@ -1607,8 +1678,9 @@ const orders = {
|
|
|
1607
1678
|
get: oc.route({
|
|
1608
1679
|
method: "GET",
|
|
1609
1680
|
path: "/orders/{id}",
|
|
1610
|
-
summary: "Fetch one order"
|
|
1611
|
-
|
|
1681
|
+
summary: "Fetch one order",
|
|
1682
|
+
inputStructure: "detailed"
|
|
1683
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(orderOutput),
|
|
1612
1684
|
create: oc.route({
|
|
1613
1685
|
method: "POST",
|
|
1614
1686
|
path: "/orders",
|
|
@@ -1617,28 +1689,36 @@ const orders = {
|
|
|
1617
1689
|
update: oc.route({
|
|
1618
1690
|
method: "PATCH",
|
|
1619
1691
|
path: "/orders/{id}",
|
|
1620
|
-
summary: "Update an order"
|
|
1621
|
-
|
|
1692
|
+
summary: "Update an order",
|
|
1693
|
+
inputStructure: "detailed"
|
|
1694
|
+
}).input(z.object({
|
|
1695
|
+
params: z.object({ id: z.string().uuid() }),
|
|
1696
|
+
body: orderUpdateInput.omit({ id: true })
|
|
1697
|
+
})).output(orderOutput),
|
|
1622
1698
|
cancel: oc.route({
|
|
1623
1699
|
method: "POST",
|
|
1624
1700
|
path: "/orders/{id}/cancel",
|
|
1625
|
-
summary: "Cancel an order"
|
|
1626
|
-
|
|
1701
|
+
summary: "Cancel an order",
|
|
1702
|
+
inputStructure: "detailed"
|
|
1703
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(orderOutput),
|
|
1627
1704
|
fulfill: oc.route({
|
|
1628
1705
|
method: "POST",
|
|
1629
1706
|
path: "/orders/{id}/fulfill",
|
|
1630
|
-
summary: "Mark order fulfilled"
|
|
1631
|
-
|
|
1707
|
+
summary: "Mark order fulfilled",
|
|
1708
|
+
inputStructure: "detailed"
|
|
1709
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(orderOutput),
|
|
1632
1710
|
delete: oc.route({
|
|
1633
1711
|
method: "DELETE",
|
|
1634
1712
|
path: "/orders/{id}",
|
|
1635
|
-
summary: "Soft-delete an order"
|
|
1636
|
-
|
|
1713
|
+
summary: "Soft-delete an order",
|
|
1714
|
+
inputStructure: "detailed"
|
|
1715
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(z.object({ ok: z.literal(true) })),
|
|
1637
1716
|
redemptions: oc.route({
|
|
1638
1717
|
method: "GET",
|
|
1639
1718
|
path: "/orders/{id}/redemptions",
|
|
1640
|
-
summary: "List redemptions attached to an order"
|
|
1641
|
-
|
|
1719
|
+
summary: "List redemptions attached to an order",
|
|
1720
|
+
inputStructure: "detailed"
|
|
1721
|
+
}).input(z.object({ params: z.object({ id: z.string().uuid() }) })).output(z.object({ data: z.array(z.object({
|
|
1642
1722
|
id: z.string().uuid(),
|
|
1643
1723
|
voucherCode: z.string(),
|
|
1644
1724
|
voucherId: z.string().uuid(),
|