@voyantjs/octo 0.1.0

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.
@@ -0,0 +1,1432 @@
1
+ import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
2
+ type Env = {
3
+ Variables: {
4
+ db: PostgresJsDatabase;
5
+ userId?: string;
6
+ };
7
+ };
8
+ export declare const octoRoutes: import("hono/hono-base").HonoBase<Env, {
9
+ "/products": {
10
+ $get: {
11
+ input: {};
12
+ output: {
13
+ data: {
14
+ id: string;
15
+ name: string;
16
+ description: string | null;
17
+ timeZone: string | null;
18
+ availabilityType: import("./types.js").OctoAvailabilityType;
19
+ allowFreesale: boolean;
20
+ instantConfirmation: boolean;
21
+ options: {
22
+ id: string;
23
+ name: string;
24
+ code: string | null;
25
+ default: boolean;
26
+ availabilityLocalStartTimes: string[];
27
+ units: {
28
+ id: string;
29
+ name: string;
30
+ code: string | null;
31
+ type: import("./types.js").OctoUnitType;
32
+ restrictions: {
33
+ minAge?: number | undefined;
34
+ maxAge?: number | undefined;
35
+ minQuantity?: number | undefined;
36
+ maxQuantity?: number | undefined;
37
+ occupancyMin?: number | undefined;
38
+ occupancyMax?: number | undefined;
39
+ };
40
+ }[];
41
+ }[];
42
+ content: {
43
+ highlights: {
44
+ id: string;
45
+ title: string;
46
+ description: string | null;
47
+ }[];
48
+ inclusions: {
49
+ id: string;
50
+ title: string;
51
+ description: string | null;
52
+ }[];
53
+ exclusions: {
54
+ id: string;
55
+ title: string;
56
+ description: string | null;
57
+ }[];
58
+ importantInformation: {
59
+ id: string;
60
+ title: string;
61
+ description: string | null;
62
+ }[];
63
+ faqs: {
64
+ id: string;
65
+ question: string;
66
+ answer: string;
67
+ }[];
68
+ locations: {
69
+ id: string;
70
+ type: string;
71
+ title: string;
72
+ address: string | null;
73
+ city: string | null;
74
+ countryCode: string | null;
75
+ latitude: number | null;
76
+ longitude: number | null;
77
+ googlePlaceId: string | null;
78
+ applePlaceId: string | null;
79
+ tripadvisorLocationId: string | null;
80
+ }[];
81
+ };
82
+ extensions: {
83
+ status: string;
84
+ visibility: string;
85
+ activated: boolean;
86
+ facilityId: string | null;
87
+ bookingMode: string;
88
+ capabilityCodes: string[];
89
+ deliveryFormats: string[];
90
+ };
91
+ }[];
92
+ total: number;
93
+ limit: number;
94
+ offset: number;
95
+ };
96
+ outputFormat: "json";
97
+ status: import("hono/utils/http-status").ContentfulStatusCode;
98
+ };
99
+ };
100
+ } & {
101
+ "/availability": {
102
+ $get: {
103
+ input: {};
104
+ output: {
105
+ data: {
106
+ id: string;
107
+ productId: string;
108
+ optionId: string | null;
109
+ localDateTimeStart: string;
110
+ localDateTimeEnd: string | null;
111
+ timeZone: string;
112
+ status: import("./types.js").OctoAvailabilityStatus;
113
+ vacancies: number | null;
114
+ capacity: number | null;
115
+ }[];
116
+ total: number;
117
+ limit: number;
118
+ offset: number;
119
+ };
120
+ outputFormat: "json";
121
+ status: import("hono/utils/http-status").ContentfulStatusCode;
122
+ };
123
+ };
124
+ } & {
125
+ "/products/:id": {
126
+ $get: {
127
+ input: {
128
+ param: {
129
+ id: string;
130
+ };
131
+ };
132
+ output: {
133
+ error: string;
134
+ };
135
+ outputFormat: "json";
136
+ status: 404;
137
+ } | {
138
+ input: {
139
+ param: {
140
+ id: string;
141
+ };
142
+ };
143
+ output: {
144
+ data: {
145
+ id: string;
146
+ name: string;
147
+ description: string | null;
148
+ timeZone: string | null;
149
+ availabilityType: import("./types.js").OctoAvailabilityType;
150
+ allowFreesale: boolean;
151
+ instantConfirmation: boolean;
152
+ options: {
153
+ id: string;
154
+ name: string;
155
+ code: string | null;
156
+ default: boolean;
157
+ availabilityLocalStartTimes: string[];
158
+ units: {
159
+ id: string;
160
+ name: string;
161
+ code: string | null;
162
+ type: import("./types.js").OctoUnitType;
163
+ restrictions: {
164
+ minAge?: number | undefined;
165
+ maxAge?: number | undefined;
166
+ minQuantity?: number | undefined;
167
+ maxQuantity?: number | undefined;
168
+ occupancyMin?: number | undefined;
169
+ occupancyMax?: number | undefined;
170
+ };
171
+ }[];
172
+ }[];
173
+ content: {
174
+ highlights: {
175
+ id: string;
176
+ title: string;
177
+ description: string | null;
178
+ }[];
179
+ inclusions: {
180
+ id: string;
181
+ title: string;
182
+ description: string | null;
183
+ }[];
184
+ exclusions: {
185
+ id: string;
186
+ title: string;
187
+ description: string | null;
188
+ }[];
189
+ importantInformation: {
190
+ id: string;
191
+ title: string;
192
+ description: string | null;
193
+ }[];
194
+ faqs: {
195
+ id: string;
196
+ question: string;
197
+ answer: string;
198
+ }[];
199
+ locations: {
200
+ id: string;
201
+ type: string;
202
+ title: string;
203
+ address: string | null;
204
+ city: string | null;
205
+ countryCode: string | null;
206
+ latitude: number | null;
207
+ longitude: number | null;
208
+ googlePlaceId: string | null;
209
+ applePlaceId: string | null;
210
+ tripadvisorLocationId: string | null;
211
+ }[];
212
+ };
213
+ extensions: {
214
+ status: string;
215
+ visibility: string;
216
+ activated: boolean;
217
+ facilityId: string | null;
218
+ bookingMode: string;
219
+ capabilityCodes: string[];
220
+ deliveryFormats: string[];
221
+ };
222
+ };
223
+ };
224
+ outputFormat: "json";
225
+ status: import("hono/utils/http-status").ContentfulStatusCode;
226
+ };
227
+ };
228
+ } & {
229
+ "/products/:id/availability": {
230
+ $get: {
231
+ input: {
232
+ param: {
233
+ id: string;
234
+ };
235
+ };
236
+ output: {
237
+ data: {
238
+ id: string;
239
+ productId: string;
240
+ optionId: string | null;
241
+ localDateTimeStart: string;
242
+ localDateTimeEnd: string | null;
243
+ timeZone: string;
244
+ status: import("./types.js").OctoAvailabilityStatus;
245
+ vacancies: number | null;
246
+ capacity: number | null;
247
+ }[];
248
+ total: number;
249
+ limit: number;
250
+ offset: number;
251
+ };
252
+ outputFormat: "json";
253
+ status: import("hono/utils/http-status").ContentfulStatusCode;
254
+ };
255
+ };
256
+ } & {
257
+ "/products/:id/calendar": {
258
+ $get: {
259
+ input: {
260
+ param: {
261
+ id: string;
262
+ };
263
+ };
264
+ output: {
265
+ data: {
266
+ localDate: string;
267
+ status: import("./types.js").OctoAvailabilityStatus;
268
+ vacancies: number | null;
269
+ capacity: number | null;
270
+ availabilityIds: string[];
271
+ }[];
272
+ total: number;
273
+ };
274
+ outputFormat: "json";
275
+ status: import("hono/utils/http-status").ContentfulStatusCode;
276
+ };
277
+ };
278
+ } & {
279
+ "/availability/:id": {
280
+ $get: {
281
+ input: {
282
+ param: {
283
+ id: string;
284
+ };
285
+ };
286
+ output: {
287
+ error: string;
288
+ };
289
+ outputFormat: "json";
290
+ status: 404;
291
+ } | {
292
+ input: {
293
+ param: {
294
+ id: string;
295
+ };
296
+ };
297
+ output: {
298
+ data: {
299
+ id: string;
300
+ productId: string;
301
+ optionId: string | null;
302
+ localDateTimeStart: string;
303
+ localDateTimeEnd: string | null;
304
+ timeZone: string;
305
+ status: import("./types.js").OctoAvailabilityStatus;
306
+ vacancies: number | null;
307
+ capacity: number | null;
308
+ };
309
+ };
310
+ outputFormat: "json";
311
+ status: import("hono/utils/http-status").ContentfulStatusCode;
312
+ };
313
+ };
314
+ } & {
315
+ "/bookings": {
316
+ $post: {
317
+ input: {};
318
+ output: {
319
+ data: {
320
+ id: string;
321
+ bookingNumber: string;
322
+ status: import("./types.js").OctoBookingStatus;
323
+ availabilityId: string | null;
324
+ contact: {
325
+ participantId: string;
326
+ firstName: string;
327
+ lastName: string;
328
+ email: string | null;
329
+ phone: string | null;
330
+ language: string | null;
331
+ } | null;
332
+ unitItems: {
333
+ bookingItemId: string;
334
+ title: string;
335
+ itemType: string;
336
+ status: string;
337
+ quantity: number;
338
+ productId: string | null;
339
+ optionId: string | null;
340
+ unitId: string | null;
341
+ pricingCategoryId: string | null;
342
+ availabilityId: string | null;
343
+ participantIds: string[];
344
+ }[];
345
+ fulfillments: {
346
+ id: string;
347
+ bookingItemId: string | null;
348
+ participantId: string | null;
349
+ type: string;
350
+ deliveryChannel: string;
351
+ status: string;
352
+ artifactUrl: string | null;
353
+ payload: {
354
+ [x: string]: import("hono/utils/types").JSONValue;
355
+ } | null;
356
+ issuedAt: string | null;
357
+ revokedAt: string | null;
358
+ }[];
359
+ artifacts: {
360
+ fulfillmentId: string;
361
+ bookingItemId: string | null;
362
+ participantId: string | null;
363
+ type: string;
364
+ deliveryChannel: string;
365
+ status: string;
366
+ artifactUrl: string | null;
367
+ downloadUrl: string | null;
368
+ pdfUrl: string | null;
369
+ qrCode: string | null;
370
+ barcode: string | null;
371
+ voucherCode: string | null;
372
+ issuedAt: string | null;
373
+ revokedAt: string | null;
374
+ }[];
375
+ redemptions: {
376
+ id: string;
377
+ bookingItemId: string | null;
378
+ participantId: string | null;
379
+ redeemedAt: string;
380
+ redeemedBy: string | null;
381
+ location: string | null;
382
+ method: string;
383
+ metadata: {
384
+ [x: string]: import("hono/utils/types").JSONValue;
385
+ } | null;
386
+ }[];
387
+ references: {
388
+ resellerReference: string | null;
389
+ offerId: string | null;
390
+ offerNumber: string | null;
391
+ orderId: string | null;
392
+ orderNumber: string | null;
393
+ supplierReferences: {
394
+ id: string;
395
+ supplierServiceId: string | null;
396
+ serviceName: string;
397
+ status: string;
398
+ supplierReference: string | null;
399
+ confirmedAt: string | null;
400
+ }[];
401
+ };
402
+ holdExpiresAt: string | null;
403
+ confirmedAt: string | null;
404
+ cancelledAt: string | null;
405
+ expiredAt: string | null;
406
+ utcRedeemedAt: string | null;
407
+ extensions: {
408
+ sourceType: string;
409
+ externalBookingRef: string | null;
410
+ communicationLanguage: string | null;
411
+ personId: string | null;
412
+ organizationId: string | null;
413
+ sellCurrency: string;
414
+ baseCurrency: string | null;
415
+ };
416
+ };
417
+ };
418
+ outputFormat: "json";
419
+ status: 201;
420
+ } | {
421
+ input: {};
422
+ output: {
423
+ error: string;
424
+ };
425
+ outputFormat: "json";
426
+ status: 404;
427
+ } | {
428
+ input: {};
429
+ output: {
430
+ error: string;
431
+ };
432
+ outputFormat: "json";
433
+ status: 409;
434
+ } | {
435
+ input: {};
436
+ output: {
437
+ error: string;
438
+ };
439
+ outputFormat: "json";
440
+ status: 400;
441
+ };
442
+ };
443
+ } & {
444
+ "/bookings": {
445
+ $get: {
446
+ input: {};
447
+ output: {
448
+ data: {
449
+ id: string;
450
+ bookingNumber: string;
451
+ status: import("./types.js").OctoBookingStatus;
452
+ availabilityId: string | null;
453
+ contact: {
454
+ participantId: string;
455
+ firstName: string;
456
+ lastName: string;
457
+ email: string | null;
458
+ phone: string | null;
459
+ language: string | null;
460
+ } | null;
461
+ unitItems: {
462
+ bookingItemId: string;
463
+ title: string;
464
+ itemType: string;
465
+ status: string;
466
+ quantity: number;
467
+ productId: string | null;
468
+ optionId: string | null;
469
+ unitId: string | null;
470
+ pricingCategoryId: string | null;
471
+ availabilityId: string | null;
472
+ participantIds: string[];
473
+ }[];
474
+ fulfillments: {
475
+ id: string;
476
+ bookingItemId: string | null;
477
+ participantId: string | null;
478
+ type: string;
479
+ deliveryChannel: string;
480
+ status: string;
481
+ artifactUrl: string | null;
482
+ payload: {
483
+ [x: string]: import("hono/utils/types").JSONValue;
484
+ } | null;
485
+ issuedAt: string | null;
486
+ revokedAt: string | null;
487
+ }[];
488
+ artifacts: {
489
+ fulfillmentId: string;
490
+ bookingItemId: string | null;
491
+ participantId: string | null;
492
+ type: string;
493
+ deliveryChannel: string;
494
+ status: string;
495
+ artifactUrl: string | null;
496
+ downloadUrl: string | null;
497
+ pdfUrl: string | null;
498
+ qrCode: string | null;
499
+ barcode: string | null;
500
+ voucherCode: string | null;
501
+ issuedAt: string | null;
502
+ revokedAt: string | null;
503
+ }[];
504
+ redemptions: {
505
+ id: string;
506
+ bookingItemId: string | null;
507
+ participantId: string | null;
508
+ redeemedAt: string;
509
+ redeemedBy: string | null;
510
+ location: string | null;
511
+ method: string;
512
+ metadata: {
513
+ [x: string]: import("hono/utils/types").JSONValue;
514
+ } | null;
515
+ }[];
516
+ references: {
517
+ resellerReference: string | null;
518
+ offerId: string | null;
519
+ offerNumber: string | null;
520
+ orderId: string | null;
521
+ orderNumber: string | null;
522
+ supplierReferences: {
523
+ id: string;
524
+ supplierServiceId: string | null;
525
+ serviceName: string;
526
+ status: string;
527
+ supplierReference: string | null;
528
+ confirmedAt: string | null;
529
+ }[];
530
+ };
531
+ holdExpiresAt: string | null;
532
+ confirmedAt: string | null;
533
+ cancelledAt: string | null;
534
+ expiredAt: string | null;
535
+ utcRedeemedAt: string | null;
536
+ extensions: {
537
+ sourceType: string;
538
+ externalBookingRef: string | null;
539
+ communicationLanguage: string | null;
540
+ personId: string | null;
541
+ organizationId: string | null;
542
+ sellCurrency: string;
543
+ baseCurrency: string | null;
544
+ };
545
+ }[];
546
+ total: number;
547
+ limit: number;
548
+ offset: number;
549
+ };
550
+ outputFormat: "json";
551
+ status: import("hono/utils/http-status").ContentfulStatusCode;
552
+ };
553
+ };
554
+ } & {
555
+ "/bookings/:id": {
556
+ $get: {
557
+ input: {
558
+ param: {
559
+ id: string;
560
+ };
561
+ };
562
+ output: {
563
+ error: string;
564
+ };
565
+ outputFormat: "json";
566
+ status: 404;
567
+ } | {
568
+ input: {
569
+ param: {
570
+ id: string;
571
+ };
572
+ };
573
+ output: {
574
+ data: {
575
+ id: string;
576
+ bookingNumber: string;
577
+ status: import("./types.js").OctoBookingStatus;
578
+ availabilityId: string | null;
579
+ contact: {
580
+ participantId: string;
581
+ firstName: string;
582
+ lastName: string;
583
+ email: string | null;
584
+ phone: string | null;
585
+ language: string | null;
586
+ } | null;
587
+ unitItems: {
588
+ bookingItemId: string;
589
+ title: string;
590
+ itemType: string;
591
+ status: string;
592
+ quantity: number;
593
+ productId: string | null;
594
+ optionId: string | null;
595
+ unitId: string | null;
596
+ pricingCategoryId: string | null;
597
+ availabilityId: string | null;
598
+ participantIds: string[];
599
+ }[];
600
+ fulfillments: {
601
+ id: string;
602
+ bookingItemId: string | null;
603
+ participantId: string | null;
604
+ type: string;
605
+ deliveryChannel: string;
606
+ status: string;
607
+ artifactUrl: string | null;
608
+ payload: {
609
+ [x: string]: import("hono/utils/types").JSONValue;
610
+ } | null;
611
+ issuedAt: string | null;
612
+ revokedAt: string | null;
613
+ }[];
614
+ artifacts: {
615
+ fulfillmentId: string;
616
+ bookingItemId: string | null;
617
+ participantId: string | null;
618
+ type: string;
619
+ deliveryChannel: string;
620
+ status: string;
621
+ artifactUrl: string | null;
622
+ downloadUrl: string | null;
623
+ pdfUrl: string | null;
624
+ qrCode: string | null;
625
+ barcode: string | null;
626
+ voucherCode: string | null;
627
+ issuedAt: string | null;
628
+ revokedAt: string | null;
629
+ }[];
630
+ redemptions: {
631
+ id: string;
632
+ bookingItemId: string | null;
633
+ participantId: string | null;
634
+ redeemedAt: string;
635
+ redeemedBy: string | null;
636
+ location: string | null;
637
+ method: string;
638
+ metadata: {
639
+ [x: string]: import("hono/utils/types").JSONValue;
640
+ } | null;
641
+ }[];
642
+ references: {
643
+ resellerReference: string | null;
644
+ offerId: string | null;
645
+ offerNumber: string | null;
646
+ orderId: string | null;
647
+ orderNumber: string | null;
648
+ supplierReferences: {
649
+ id: string;
650
+ supplierServiceId: string | null;
651
+ serviceName: string;
652
+ status: string;
653
+ supplierReference: string | null;
654
+ confirmedAt: string | null;
655
+ }[];
656
+ };
657
+ holdExpiresAt: string | null;
658
+ confirmedAt: string | null;
659
+ cancelledAt: string | null;
660
+ expiredAt: string | null;
661
+ utcRedeemedAt: string | null;
662
+ extensions: {
663
+ sourceType: string;
664
+ externalBookingRef: string | null;
665
+ communicationLanguage: string | null;
666
+ personId: string | null;
667
+ organizationId: string | null;
668
+ sellCurrency: string;
669
+ baseCurrency: string | null;
670
+ };
671
+ };
672
+ };
673
+ outputFormat: "json";
674
+ status: import("hono/utils/http-status").ContentfulStatusCode;
675
+ };
676
+ };
677
+ } & {
678
+ "/bookings/:id/confirm": {
679
+ $post: {
680
+ input: {
681
+ param: {
682
+ id: string;
683
+ };
684
+ };
685
+ output: {
686
+ data: {
687
+ id: string;
688
+ bookingNumber: string;
689
+ status: import("./types.js").OctoBookingStatus;
690
+ availabilityId: string | null;
691
+ contact: {
692
+ participantId: string;
693
+ firstName: string;
694
+ lastName: string;
695
+ email: string | null;
696
+ phone: string | null;
697
+ language: string | null;
698
+ } | null;
699
+ unitItems: {
700
+ bookingItemId: string;
701
+ title: string;
702
+ itemType: string;
703
+ status: string;
704
+ quantity: number;
705
+ productId: string | null;
706
+ optionId: string | null;
707
+ unitId: string | null;
708
+ pricingCategoryId: string | null;
709
+ availabilityId: string | null;
710
+ participantIds: string[];
711
+ }[];
712
+ fulfillments: {
713
+ id: string;
714
+ bookingItemId: string | null;
715
+ participantId: string | null;
716
+ type: string;
717
+ deliveryChannel: string;
718
+ status: string;
719
+ artifactUrl: string | null;
720
+ payload: {
721
+ [x: string]: import("hono/utils/types").JSONValue;
722
+ } | null;
723
+ issuedAt: string | null;
724
+ revokedAt: string | null;
725
+ }[];
726
+ artifacts: {
727
+ fulfillmentId: string;
728
+ bookingItemId: string | null;
729
+ participantId: string | null;
730
+ type: string;
731
+ deliveryChannel: string;
732
+ status: string;
733
+ artifactUrl: string | null;
734
+ downloadUrl: string | null;
735
+ pdfUrl: string | null;
736
+ qrCode: string | null;
737
+ barcode: string | null;
738
+ voucherCode: string | null;
739
+ issuedAt: string | null;
740
+ revokedAt: string | null;
741
+ }[];
742
+ redemptions: {
743
+ id: string;
744
+ bookingItemId: string | null;
745
+ participantId: string | null;
746
+ redeemedAt: string;
747
+ redeemedBy: string | null;
748
+ location: string | null;
749
+ method: string;
750
+ metadata: {
751
+ [x: string]: import("hono/utils/types").JSONValue;
752
+ } | null;
753
+ }[];
754
+ references: {
755
+ resellerReference: string | null;
756
+ offerId: string | null;
757
+ offerNumber: string | null;
758
+ orderId: string | null;
759
+ orderNumber: string | null;
760
+ supplierReferences: {
761
+ id: string;
762
+ supplierServiceId: string | null;
763
+ serviceName: string;
764
+ status: string;
765
+ supplierReference: string | null;
766
+ confirmedAt: string | null;
767
+ }[];
768
+ };
769
+ holdExpiresAt: string | null;
770
+ confirmedAt: string | null;
771
+ cancelledAt: string | null;
772
+ expiredAt: string | null;
773
+ utcRedeemedAt: string | null;
774
+ extensions: {
775
+ sourceType: string;
776
+ externalBookingRef: string | null;
777
+ communicationLanguage: string | null;
778
+ personId: string | null;
779
+ organizationId: string | null;
780
+ sellCurrency: string;
781
+ baseCurrency: string | null;
782
+ };
783
+ };
784
+ };
785
+ outputFormat: "json";
786
+ status: import("hono/utils/http-status").ContentfulStatusCode;
787
+ } | {
788
+ input: {
789
+ param: {
790
+ id: string;
791
+ };
792
+ };
793
+ output: {
794
+ error: string;
795
+ };
796
+ outputFormat: "json";
797
+ status: 404;
798
+ } | {
799
+ input: {
800
+ param: {
801
+ id: string;
802
+ };
803
+ };
804
+ output: {
805
+ error: string;
806
+ };
807
+ outputFormat: "json";
808
+ status: 409;
809
+ } | {
810
+ input: {
811
+ param: {
812
+ id: string;
813
+ };
814
+ };
815
+ output: {
816
+ error: string;
817
+ };
818
+ outputFormat: "json";
819
+ status: 400;
820
+ };
821
+ };
822
+ } & {
823
+ "/bookings/:id/extend-hold": {
824
+ $post: {
825
+ input: {
826
+ param: {
827
+ id: string;
828
+ };
829
+ };
830
+ output: {
831
+ data: {
832
+ id: string;
833
+ bookingNumber: string;
834
+ status: import("./types.js").OctoBookingStatus;
835
+ availabilityId: string | null;
836
+ contact: {
837
+ participantId: string;
838
+ firstName: string;
839
+ lastName: string;
840
+ email: string | null;
841
+ phone: string | null;
842
+ language: string | null;
843
+ } | null;
844
+ unitItems: {
845
+ bookingItemId: string;
846
+ title: string;
847
+ itemType: string;
848
+ status: string;
849
+ quantity: number;
850
+ productId: string | null;
851
+ optionId: string | null;
852
+ unitId: string | null;
853
+ pricingCategoryId: string | null;
854
+ availabilityId: string | null;
855
+ participantIds: string[];
856
+ }[];
857
+ fulfillments: {
858
+ id: string;
859
+ bookingItemId: string | null;
860
+ participantId: string | null;
861
+ type: string;
862
+ deliveryChannel: string;
863
+ status: string;
864
+ artifactUrl: string | null;
865
+ payload: {
866
+ [x: string]: import("hono/utils/types").JSONValue;
867
+ } | null;
868
+ issuedAt: string | null;
869
+ revokedAt: string | null;
870
+ }[];
871
+ artifacts: {
872
+ fulfillmentId: string;
873
+ bookingItemId: string | null;
874
+ participantId: string | null;
875
+ type: string;
876
+ deliveryChannel: string;
877
+ status: string;
878
+ artifactUrl: string | null;
879
+ downloadUrl: string | null;
880
+ pdfUrl: string | null;
881
+ qrCode: string | null;
882
+ barcode: string | null;
883
+ voucherCode: string | null;
884
+ issuedAt: string | null;
885
+ revokedAt: string | null;
886
+ }[];
887
+ redemptions: {
888
+ id: string;
889
+ bookingItemId: string | null;
890
+ participantId: string | null;
891
+ redeemedAt: string;
892
+ redeemedBy: string | null;
893
+ location: string | null;
894
+ method: string;
895
+ metadata: {
896
+ [x: string]: import("hono/utils/types").JSONValue;
897
+ } | null;
898
+ }[];
899
+ references: {
900
+ resellerReference: string | null;
901
+ offerId: string | null;
902
+ offerNumber: string | null;
903
+ orderId: string | null;
904
+ orderNumber: string | null;
905
+ supplierReferences: {
906
+ id: string;
907
+ supplierServiceId: string | null;
908
+ serviceName: string;
909
+ status: string;
910
+ supplierReference: string | null;
911
+ confirmedAt: string | null;
912
+ }[];
913
+ };
914
+ holdExpiresAt: string | null;
915
+ confirmedAt: string | null;
916
+ cancelledAt: string | null;
917
+ expiredAt: string | null;
918
+ utcRedeemedAt: string | null;
919
+ extensions: {
920
+ sourceType: string;
921
+ externalBookingRef: string | null;
922
+ communicationLanguage: string | null;
923
+ personId: string | null;
924
+ organizationId: string | null;
925
+ sellCurrency: string;
926
+ baseCurrency: string | null;
927
+ };
928
+ };
929
+ };
930
+ outputFormat: "json";
931
+ status: import("hono/utils/http-status").ContentfulStatusCode;
932
+ } | {
933
+ input: {
934
+ param: {
935
+ id: string;
936
+ };
937
+ };
938
+ output: {
939
+ error: string;
940
+ };
941
+ outputFormat: "json";
942
+ status: 404;
943
+ } | {
944
+ input: {
945
+ param: {
946
+ id: string;
947
+ };
948
+ };
949
+ output: {
950
+ error: string;
951
+ };
952
+ outputFormat: "json";
953
+ status: 409;
954
+ } | {
955
+ input: {
956
+ param: {
957
+ id: string;
958
+ };
959
+ };
960
+ output: {
961
+ error: string;
962
+ };
963
+ outputFormat: "json";
964
+ status: 400;
965
+ };
966
+ };
967
+ } & {
968
+ "/bookings/:id/expire": {
969
+ $post: {
970
+ input: {
971
+ param: {
972
+ id: string;
973
+ };
974
+ };
975
+ output: {
976
+ data: {
977
+ id: string;
978
+ bookingNumber: string;
979
+ status: import("./types.js").OctoBookingStatus;
980
+ availabilityId: string | null;
981
+ contact: {
982
+ participantId: string;
983
+ firstName: string;
984
+ lastName: string;
985
+ email: string | null;
986
+ phone: string | null;
987
+ language: string | null;
988
+ } | null;
989
+ unitItems: {
990
+ bookingItemId: string;
991
+ title: string;
992
+ itemType: string;
993
+ status: string;
994
+ quantity: number;
995
+ productId: string | null;
996
+ optionId: string | null;
997
+ unitId: string | null;
998
+ pricingCategoryId: string | null;
999
+ availabilityId: string | null;
1000
+ participantIds: string[];
1001
+ }[];
1002
+ fulfillments: {
1003
+ id: string;
1004
+ bookingItemId: string | null;
1005
+ participantId: string | null;
1006
+ type: string;
1007
+ deliveryChannel: string;
1008
+ status: string;
1009
+ artifactUrl: string | null;
1010
+ payload: {
1011
+ [x: string]: import("hono/utils/types").JSONValue;
1012
+ } | null;
1013
+ issuedAt: string | null;
1014
+ revokedAt: string | null;
1015
+ }[];
1016
+ artifacts: {
1017
+ fulfillmentId: string;
1018
+ bookingItemId: string | null;
1019
+ participantId: string | null;
1020
+ type: string;
1021
+ deliveryChannel: string;
1022
+ status: string;
1023
+ artifactUrl: string | null;
1024
+ downloadUrl: string | null;
1025
+ pdfUrl: string | null;
1026
+ qrCode: string | null;
1027
+ barcode: string | null;
1028
+ voucherCode: string | null;
1029
+ issuedAt: string | null;
1030
+ revokedAt: string | null;
1031
+ }[];
1032
+ redemptions: {
1033
+ id: string;
1034
+ bookingItemId: string | null;
1035
+ participantId: string | null;
1036
+ redeemedAt: string;
1037
+ redeemedBy: string | null;
1038
+ location: string | null;
1039
+ method: string;
1040
+ metadata: {
1041
+ [x: string]: import("hono/utils/types").JSONValue;
1042
+ } | null;
1043
+ }[];
1044
+ references: {
1045
+ resellerReference: string | null;
1046
+ offerId: string | null;
1047
+ offerNumber: string | null;
1048
+ orderId: string | null;
1049
+ orderNumber: string | null;
1050
+ supplierReferences: {
1051
+ id: string;
1052
+ supplierServiceId: string | null;
1053
+ serviceName: string;
1054
+ status: string;
1055
+ supplierReference: string | null;
1056
+ confirmedAt: string | null;
1057
+ }[];
1058
+ };
1059
+ holdExpiresAt: string | null;
1060
+ confirmedAt: string | null;
1061
+ cancelledAt: string | null;
1062
+ expiredAt: string | null;
1063
+ utcRedeemedAt: string | null;
1064
+ extensions: {
1065
+ sourceType: string;
1066
+ externalBookingRef: string | null;
1067
+ communicationLanguage: string | null;
1068
+ personId: string | null;
1069
+ organizationId: string | null;
1070
+ sellCurrency: string;
1071
+ baseCurrency: string | null;
1072
+ };
1073
+ };
1074
+ };
1075
+ outputFormat: "json";
1076
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1077
+ } | {
1078
+ input: {
1079
+ param: {
1080
+ id: string;
1081
+ };
1082
+ };
1083
+ output: {
1084
+ error: string;
1085
+ };
1086
+ outputFormat: "json";
1087
+ status: 404;
1088
+ } | {
1089
+ input: {
1090
+ param: {
1091
+ id: string;
1092
+ };
1093
+ };
1094
+ output: {
1095
+ error: string;
1096
+ };
1097
+ outputFormat: "json";
1098
+ status: 409;
1099
+ } | {
1100
+ input: {
1101
+ param: {
1102
+ id: string;
1103
+ };
1104
+ };
1105
+ output: {
1106
+ error: string;
1107
+ };
1108
+ outputFormat: "json";
1109
+ status: 400;
1110
+ };
1111
+ };
1112
+ } & {
1113
+ "/bookings/:id/cancel": {
1114
+ $post: {
1115
+ input: {
1116
+ param: {
1117
+ id: string;
1118
+ };
1119
+ };
1120
+ output: {
1121
+ data: {
1122
+ id: string;
1123
+ bookingNumber: string;
1124
+ status: import("./types.js").OctoBookingStatus;
1125
+ availabilityId: string | null;
1126
+ contact: {
1127
+ participantId: string;
1128
+ firstName: string;
1129
+ lastName: string;
1130
+ email: string | null;
1131
+ phone: string | null;
1132
+ language: string | null;
1133
+ } | null;
1134
+ unitItems: {
1135
+ bookingItemId: string;
1136
+ title: string;
1137
+ itemType: string;
1138
+ status: string;
1139
+ quantity: number;
1140
+ productId: string | null;
1141
+ optionId: string | null;
1142
+ unitId: string | null;
1143
+ pricingCategoryId: string | null;
1144
+ availabilityId: string | null;
1145
+ participantIds: string[];
1146
+ }[];
1147
+ fulfillments: {
1148
+ id: string;
1149
+ bookingItemId: string | null;
1150
+ participantId: string | null;
1151
+ type: string;
1152
+ deliveryChannel: string;
1153
+ status: string;
1154
+ artifactUrl: string | null;
1155
+ payload: {
1156
+ [x: string]: import("hono/utils/types").JSONValue;
1157
+ } | null;
1158
+ issuedAt: string | null;
1159
+ revokedAt: string | null;
1160
+ }[];
1161
+ artifacts: {
1162
+ fulfillmentId: string;
1163
+ bookingItemId: string | null;
1164
+ participantId: string | null;
1165
+ type: string;
1166
+ deliveryChannel: string;
1167
+ status: string;
1168
+ artifactUrl: string | null;
1169
+ downloadUrl: string | null;
1170
+ pdfUrl: string | null;
1171
+ qrCode: string | null;
1172
+ barcode: string | null;
1173
+ voucherCode: string | null;
1174
+ issuedAt: string | null;
1175
+ revokedAt: string | null;
1176
+ }[];
1177
+ redemptions: {
1178
+ id: string;
1179
+ bookingItemId: string | null;
1180
+ participantId: string | null;
1181
+ redeemedAt: string;
1182
+ redeemedBy: string | null;
1183
+ location: string | null;
1184
+ method: string;
1185
+ metadata: {
1186
+ [x: string]: import("hono/utils/types").JSONValue;
1187
+ } | null;
1188
+ }[];
1189
+ references: {
1190
+ resellerReference: string | null;
1191
+ offerId: string | null;
1192
+ offerNumber: string | null;
1193
+ orderId: string | null;
1194
+ orderNumber: string | null;
1195
+ supplierReferences: {
1196
+ id: string;
1197
+ supplierServiceId: string | null;
1198
+ serviceName: string;
1199
+ status: string;
1200
+ supplierReference: string | null;
1201
+ confirmedAt: string | null;
1202
+ }[];
1203
+ };
1204
+ holdExpiresAt: string | null;
1205
+ confirmedAt: string | null;
1206
+ cancelledAt: string | null;
1207
+ expiredAt: string | null;
1208
+ utcRedeemedAt: string | null;
1209
+ extensions: {
1210
+ sourceType: string;
1211
+ externalBookingRef: string | null;
1212
+ communicationLanguage: string | null;
1213
+ personId: string | null;
1214
+ organizationId: string | null;
1215
+ sellCurrency: string;
1216
+ baseCurrency: string | null;
1217
+ };
1218
+ };
1219
+ };
1220
+ outputFormat: "json";
1221
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1222
+ } | {
1223
+ input: {
1224
+ param: {
1225
+ id: string;
1226
+ };
1227
+ };
1228
+ output: {
1229
+ error: string;
1230
+ };
1231
+ outputFormat: "json";
1232
+ status: 404;
1233
+ } | {
1234
+ input: {
1235
+ param: {
1236
+ id: string;
1237
+ };
1238
+ };
1239
+ output: {
1240
+ error: string;
1241
+ };
1242
+ outputFormat: "json";
1243
+ status: 409;
1244
+ } | {
1245
+ input: {
1246
+ param: {
1247
+ id: string;
1248
+ };
1249
+ };
1250
+ output: {
1251
+ error: string;
1252
+ };
1253
+ outputFormat: "json";
1254
+ status: 400;
1255
+ };
1256
+ };
1257
+ } & {
1258
+ "/bookings/:id/redemptions": {
1259
+ $get: {
1260
+ input: {
1261
+ param: {
1262
+ id: string;
1263
+ };
1264
+ };
1265
+ output: {
1266
+ error: string;
1267
+ };
1268
+ outputFormat: "json";
1269
+ status: 404;
1270
+ } | {
1271
+ input: {
1272
+ param: {
1273
+ id: string;
1274
+ };
1275
+ };
1276
+ output: {
1277
+ data: {
1278
+ id: string;
1279
+ bookingItemId: string | null;
1280
+ participantId: string | null;
1281
+ redeemedAt: string;
1282
+ redeemedBy: string | null;
1283
+ location: string | null;
1284
+ method: "other" | "manual" | "api" | "scan";
1285
+ metadata: {
1286
+ [x: string]: import("hono/utils/types").JSONValue;
1287
+ } | null;
1288
+ }[];
1289
+ };
1290
+ outputFormat: "json";
1291
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1292
+ };
1293
+ };
1294
+ } & {
1295
+ "/bookings/:id/redeem": {
1296
+ $post: {
1297
+ input: {
1298
+ param: {
1299
+ id: string;
1300
+ };
1301
+ };
1302
+ output: {
1303
+ error: string;
1304
+ };
1305
+ outputFormat: "json";
1306
+ status: 404;
1307
+ } | {
1308
+ input: {
1309
+ param: {
1310
+ id: string;
1311
+ };
1312
+ };
1313
+ output: {
1314
+ data: {
1315
+ id: string;
1316
+ bookingItemId: string | null;
1317
+ participantId: string | null;
1318
+ redeemedAt: string;
1319
+ redeemedBy: string | null;
1320
+ location: string | null;
1321
+ method: "other" | "manual" | "api" | "scan";
1322
+ metadata: {
1323
+ [x: string]: import("hono/utils/types").JSONValue;
1324
+ } | null;
1325
+ };
1326
+ booking: {
1327
+ id: string;
1328
+ bookingNumber: string;
1329
+ status: import("./types.js").OctoBookingStatus;
1330
+ availabilityId: string | null;
1331
+ contact: {
1332
+ participantId: string;
1333
+ firstName: string;
1334
+ lastName: string;
1335
+ email: string | null;
1336
+ phone: string | null;
1337
+ language: string | null;
1338
+ } | null;
1339
+ unitItems: {
1340
+ bookingItemId: string;
1341
+ title: string;
1342
+ itemType: string;
1343
+ status: string;
1344
+ quantity: number;
1345
+ productId: string | null;
1346
+ optionId: string | null;
1347
+ unitId: string | null;
1348
+ pricingCategoryId: string | null;
1349
+ availabilityId: string | null;
1350
+ participantIds: string[];
1351
+ }[];
1352
+ fulfillments: {
1353
+ id: string;
1354
+ bookingItemId: string | null;
1355
+ participantId: string | null;
1356
+ type: string;
1357
+ deliveryChannel: string;
1358
+ status: string;
1359
+ artifactUrl: string | null;
1360
+ payload: {
1361
+ [x: string]: import("hono/utils/types").JSONValue;
1362
+ } | null;
1363
+ issuedAt: string | null;
1364
+ revokedAt: string | null;
1365
+ }[];
1366
+ artifacts: {
1367
+ fulfillmentId: string;
1368
+ bookingItemId: string | null;
1369
+ participantId: string | null;
1370
+ type: string;
1371
+ deliveryChannel: string;
1372
+ status: string;
1373
+ artifactUrl: string | null;
1374
+ downloadUrl: string | null;
1375
+ pdfUrl: string | null;
1376
+ qrCode: string | null;
1377
+ barcode: string | null;
1378
+ voucherCode: string | null;
1379
+ issuedAt: string | null;
1380
+ revokedAt: string | null;
1381
+ }[];
1382
+ redemptions: {
1383
+ id: string;
1384
+ bookingItemId: string | null;
1385
+ participantId: string | null;
1386
+ redeemedAt: string;
1387
+ redeemedBy: string | null;
1388
+ location: string | null;
1389
+ method: string;
1390
+ metadata: {
1391
+ [x: string]: import("hono/utils/types").JSONValue;
1392
+ } | null;
1393
+ }[];
1394
+ references: {
1395
+ resellerReference: string | null;
1396
+ offerId: string | null;
1397
+ offerNumber: string | null;
1398
+ orderId: string | null;
1399
+ orderNumber: string | null;
1400
+ supplierReferences: {
1401
+ id: string;
1402
+ supplierServiceId: string | null;
1403
+ serviceName: string;
1404
+ status: string;
1405
+ supplierReference: string | null;
1406
+ confirmedAt: string | null;
1407
+ }[];
1408
+ };
1409
+ holdExpiresAt: string | null;
1410
+ confirmedAt: string | null;
1411
+ cancelledAt: string | null;
1412
+ expiredAt: string | null;
1413
+ utcRedeemedAt: string | null;
1414
+ extensions: {
1415
+ sourceType: string;
1416
+ externalBookingRef: string | null;
1417
+ communicationLanguage: string | null;
1418
+ personId: string | null;
1419
+ organizationId: string | null;
1420
+ sellCurrency: string;
1421
+ baseCurrency: string | null;
1422
+ };
1423
+ } | null;
1424
+ };
1425
+ outputFormat: "json";
1426
+ status: 201;
1427
+ };
1428
+ };
1429
+ }, "/", "/bookings/:id/redeem">;
1430
+ export type OctoRoutes = typeof octoRoutes;
1431
+ export {};
1432
+ //# sourceMappingURL=routes.d.ts.map