@voyantjs/pricing 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,2162 @@
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 pricingRoutes: import("hono/hono-base").HonoBase<Env, {
9
+ "/pricing-categories": {
10
+ $get: {
11
+ input: {};
12
+ output: {
13
+ data: {
14
+ id: string;
15
+ productId: string | null;
16
+ optionId: string | null;
17
+ unitId: string | null;
18
+ code: string | null;
19
+ name: string;
20
+ categoryType: "adult" | "child" | "infant" | "senior" | "group" | "room" | "vehicle" | "service" | "other";
21
+ seatOccupancy: number;
22
+ groupSize: number | null;
23
+ isAgeQualified: boolean;
24
+ minAge: number | null;
25
+ maxAge: number | null;
26
+ internalUseOnly: boolean;
27
+ active: boolean;
28
+ sortOrder: number;
29
+ metadata: {
30
+ [x: string]: import("hono/utils/types").JSONValue;
31
+ } | null;
32
+ createdAt: string;
33
+ updatedAt: string;
34
+ }[];
35
+ total: number;
36
+ limit: number;
37
+ offset: number;
38
+ };
39
+ outputFormat: "json";
40
+ status: import("hono/utils/http-status").ContentfulStatusCode;
41
+ };
42
+ };
43
+ } & {
44
+ "/pricing-categories": {
45
+ $post: {
46
+ input: {};
47
+ output: {
48
+ data: {
49
+ id: string;
50
+ name: string;
51
+ productId: string | null;
52
+ optionId: string | null;
53
+ unitId: string | null;
54
+ code: string | null;
55
+ categoryType: "adult" | "child" | "infant" | "senior" | "group" | "room" | "vehicle" | "service" | "other";
56
+ seatOccupancy: number;
57
+ groupSize: number | null;
58
+ isAgeQualified: boolean;
59
+ minAge: number | null;
60
+ maxAge: number | null;
61
+ internalUseOnly: boolean;
62
+ active: boolean;
63
+ sortOrder: number;
64
+ metadata: {
65
+ [x: string]: import("hono/utils/types").JSONValue;
66
+ } | null;
67
+ createdAt: string;
68
+ updatedAt: string;
69
+ } | null;
70
+ };
71
+ outputFormat: "json";
72
+ status: 201;
73
+ };
74
+ };
75
+ } & {
76
+ "/pricing-categories/:id": {
77
+ $get: {
78
+ input: {
79
+ param: {
80
+ id: string;
81
+ };
82
+ };
83
+ output: {
84
+ error: string;
85
+ };
86
+ outputFormat: "json";
87
+ status: 404;
88
+ } | {
89
+ input: {
90
+ param: {
91
+ id: string;
92
+ };
93
+ };
94
+ output: {
95
+ data: {
96
+ id: string;
97
+ productId: string | null;
98
+ optionId: string | null;
99
+ unitId: string | null;
100
+ code: string | null;
101
+ name: string;
102
+ categoryType: "adult" | "child" | "infant" | "senior" | "group" | "room" | "vehicle" | "service" | "other";
103
+ seatOccupancy: number;
104
+ groupSize: number | null;
105
+ isAgeQualified: boolean;
106
+ minAge: number | null;
107
+ maxAge: number | null;
108
+ internalUseOnly: boolean;
109
+ active: boolean;
110
+ sortOrder: number;
111
+ metadata: {
112
+ [x: string]: import("hono/utils/types").JSONValue;
113
+ } | null;
114
+ createdAt: string;
115
+ updatedAt: string;
116
+ };
117
+ };
118
+ outputFormat: "json";
119
+ status: import("hono/utils/http-status").ContentfulStatusCode;
120
+ };
121
+ };
122
+ } & {
123
+ "/pricing-categories/:id": {
124
+ $patch: {
125
+ input: {
126
+ param: {
127
+ id: string;
128
+ };
129
+ };
130
+ output: {
131
+ error: string;
132
+ };
133
+ outputFormat: "json";
134
+ status: 404;
135
+ } | {
136
+ input: {
137
+ param: {
138
+ id: string;
139
+ };
140
+ };
141
+ output: {
142
+ data: {
143
+ id: string;
144
+ productId: string | null;
145
+ optionId: string | null;
146
+ unitId: string | null;
147
+ code: string | null;
148
+ name: string;
149
+ categoryType: "adult" | "child" | "infant" | "senior" | "group" | "room" | "vehicle" | "service" | "other";
150
+ seatOccupancy: number;
151
+ groupSize: number | null;
152
+ isAgeQualified: boolean;
153
+ minAge: number | null;
154
+ maxAge: number | null;
155
+ internalUseOnly: boolean;
156
+ active: boolean;
157
+ sortOrder: number;
158
+ metadata: {
159
+ [x: string]: import("hono/utils/types").JSONValue;
160
+ } | null;
161
+ createdAt: string;
162
+ updatedAt: string;
163
+ };
164
+ };
165
+ outputFormat: "json";
166
+ status: import("hono/utils/http-status").ContentfulStatusCode;
167
+ };
168
+ };
169
+ } & {
170
+ "/pricing-categories/:id": {
171
+ $delete: {
172
+ input: {
173
+ param: {
174
+ id: string;
175
+ };
176
+ };
177
+ output: {
178
+ error: string;
179
+ };
180
+ outputFormat: "json";
181
+ status: 404;
182
+ } | {
183
+ input: {
184
+ param: {
185
+ id: string;
186
+ };
187
+ };
188
+ output: {
189
+ success: true;
190
+ };
191
+ outputFormat: "json";
192
+ status: import("hono/utils/http-status").ContentfulStatusCode;
193
+ };
194
+ };
195
+ } & {
196
+ "/pricing-category-dependencies": {
197
+ $get: {
198
+ input: {};
199
+ output: {
200
+ data: {
201
+ id: string;
202
+ pricingCategoryId: string;
203
+ masterPricingCategoryId: string;
204
+ dependencyType: "requires" | "limits_per_master" | "limits_sum" | "excludes";
205
+ maxPerMaster: number | null;
206
+ maxDependentSum: number | null;
207
+ active: boolean;
208
+ notes: string | null;
209
+ createdAt: string;
210
+ updatedAt: string;
211
+ }[];
212
+ total: number;
213
+ limit: number;
214
+ offset: number;
215
+ };
216
+ outputFormat: "json";
217
+ status: import("hono/utils/http-status").ContentfulStatusCode;
218
+ };
219
+ };
220
+ } & {
221
+ "/pricing-category-dependencies": {
222
+ $post: {
223
+ input: {};
224
+ output: {
225
+ data: {
226
+ id: string;
227
+ active: boolean;
228
+ createdAt: string;
229
+ updatedAt: string;
230
+ pricingCategoryId: string;
231
+ masterPricingCategoryId: string;
232
+ dependencyType: "requires" | "limits_per_master" | "limits_sum" | "excludes";
233
+ maxPerMaster: number | null;
234
+ maxDependentSum: number | null;
235
+ notes: string | null;
236
+ } | null;
237
+ };
238
+ outputFormat: "json";
239
+ status: 201;
240
+ };
241
+ };
242
+ } & {
243
+ "/pricing-category-dependencies/:id": {
244
+ $get: {
245
+ input: {
246
+ param: {
247
+ id: string;
248
+ };
249
+ };
250
+ output: {
251
+ error: string;
252
+ };
253
+ outputFormat: "json";
254
+ status: 404;
255
+ } | {
256
+ input: {
257
+ param: {
258
+ id: string;
259
+ };
260
+ };
261
+ output: {
262
+ data: {
263
+ id: string;
264
+ pricingCategoryId: string;
265
+ masterPricingCategoryId: string;
266
+ dependencyType: "requires" | "limits_per_master" | "limits_sum" | "excludes";
267
+ maxPerMaster: number | null;
268
+ maxDependentSum: number | null;
269
+ active: boolean;
270
+ notes: string | null;
271
+ createdAt: string;
272
+ updatedAt: string;
273
+ };
274
+ };
275
+ outputFormat: "json";
276
+ status: import("hono/utils/http-status").ContentfulStatusCode;
277
+ };
278
+ };
279
+ } & {
280
+ "/pricing-category-dependencies/:id": {
281
+ $patch: {
282
+ input: {
283
+ param: {
284
+ id: string;
285
+ };
286
+ };
287
+ output: {
288
+ error: string;
289
+ };
290
+ outputFormat: "json";
291
+ status: 404;
292
+ } | {
293
+ input: {
294
+ param: {
295
+ id: string;
296
+ };
297
+ };
298
+ output: {
299
+ data: {
300
+ id: string;
301
+ pricingCategoryId: string;
302
+ masterPricingCategoryId: string;
303
+ dependencyType: "requires" | "limits_per_master" | "limits_sum" | "excludes";
304
+ maxPerMaster: number | null;
305
+ maxDependentSum: number | null;
306
+ active: boolean;
307
+ notes: string | null;
308
+ createdAt: string;
309
+ updatedAt: string;
310
+ };
311
+ };
312
+ outputFormat: "json";
313
+ status: import("hono/utils/http-status").ContentfulStatusCode;
314
+ };
315
+ };
316
+ } & {
317
+ "/pricing-category-dependencies/:id": {
318
+ $delete: {
319
+ input: {
320
+ param: {
321
+ id: string;
322
+ };
323
+ };
324
+ output: {
325
+ error: string;
326
+ };
327
+ outputFormat: "json";
328
+ status: 404;
329
+ } | {
330
+ input: {
331
+ param: {
332
+ id: string;
333
+ };
334
+ };
335
+ output: {
336
+ success: true;
337
+ };
338
+ outputFormat: "json";
339
+ status: import("hono/utils/http-status").ContentfulStatusCode;
340
+ };
341
+ };
342
+ } & {
343
+ "/cancellation-policies": {
344
+ $get: {
345
+ input: {};
346
+ output: {
347
+ data: {
348
+ id: string;
349
+ code: string | null;
350
+ name: string;
351
+ policyType: "simple" | "advanced" | "non_refundable" | "custom";
352
+ simpleCutoffHours: number | null;
353
+ isDefault: boolean;
354
+ active: boolean;
355
+ notes: string | null;
356
+ metadata: {
357
+ [x: string]: import("hono/utils/types").JSONValue;
358
+ } | null;
359
+ createdAt: string;
360
+ updatedAt: string;
361
+ }[];
362
+ total: number;
363
+ limit: number;
364
+ offset: number;
365
+ };
366
+ outputFormat: "json";
367
+ status: import("hono/utils/http-status").ContentfulStatusCode;
368
+ };
369
+ };
370
+ } & {
371
+ "/cancellation-policies": {
372
+ $post: {
373
+ input: {};
374
+ output: {
375
+ data: {
376
+ id: string;
377
+ name: string;
378
+ code: string | null;
379
+ active: boolean;
380
+ metadata: {
381
+ [x: string]: import("hono/utils/types").JSONValue;
382
+ } | null;
383
+ createdAt: string;
384
+ updatedAt: string;
385
+ notes: string | null;
386
+ policyType: "simple" | "advanced" | "non_refundable" | "custom";
387
+ simpleCutoffHours: number | null;
388
+ isDefault: boolean;
389
+ } | null;
390
+ };
391
+ outputFormat: "json";
392
+ status: 201;
393
+ };
394
+ };
395
+ } & {
396
+ "/cancellation-policies/:id": {
397
+ $get: {
398
+ input: {
399
+ param: {
400
+ id: string;
401
+ };
402
+ };
403
+ output: {
404
+ error: string;
405
+ };
406
+ outputFormat: "json";
407
+ status: 404;
408
+ } | {
409
+ input: {
410
+ param: {
411
+ id: string;
412
+ };
413
+ };
414
+ output: {
415
+ data: {
416
+ id: string;
417
+ code: string | null;
418
+ name: string;
419
+ policyType: "simple" | "advanced" | "non_refundable" | "custom";
420
+ simpleCutoffHours: number | null;
421
+ isDefault: boolean;
422
+ active: boolean;
423
+ notes: string | null;
424
+ metadata: {
425
+ [x: string]: import("hono/utils/types").JSONValue;
426
+ } | null;
427
+ createdAt: string;
428
+ updatedAt: string;
429
+ };
430
+ };
431
+ outputFormat: "json";
432
+ status: import("hono/utils/http-status").ContentfulStatusCode;
433
+ };
434
+ };
435
+ } & {
436
+ "/cancellation-policies/:id": {
437
+ $patch: {
438
+ input: {
439
+ param: {
440
+ id: string;
441
+ };
442
+ };
443
+ output: {
444
+ error: string;
445
+ };
446
+ outputFormat: "json";
447
+ status: 404;
448
+ } | {
449
+ input: {
450
+ param: {
451
+ id: string;
452
+ };
453
+ };
454
+ output: {
455
+ data: {
456
+ id: string;
457
+ code: string | null;
458
+ name: string;
459
+ policyType: "simple" | "advanced" | "non_refundable" | "custom";
460
+ simpleCutoffHours: number | null;
461
+ isDefault: boolean;
462
+ active: boolean;
463
+ notes: string | null;
464
+ metadata: {
465
+ [x: string]: import("hono/utils/types").JSONValue;
466
+ } | null;
467
+ createdAt: string;
468
+ updatedAt: string;
469
+ };
470
+ };
471
+ outputFormat: "json";
472
+ status: import("hono/utils/http-status").ContentfulStatusCode;
473
+ };
474
+ };
475
+ } & {
476
+ "/cancellation-policies/:id": {
477
+ $delete: {
478
+ input: {
479
+ param: {
480
+ id: string;
481
+ };
482
+ };
483
+ output: {
484
+ error: string;
485
+ };
486
+ outputFormat: "json";
487
+ status: 404;
488
+ } | {
489
+ input: {
490
+ param: {
491
+ id: string;
492
+ };
493
+ };
494
+ output: {
495
+ success: true;
496
+ };
497
+ outputFormat: "json";
498
+ status: import("hono/utils/http-status").ContentfulStatusCode;
499
+ };
500
+ };
501
+ } & {
502
+ "/cancellation-policy-rules": {
503
+ $get: {
504
+ input: {};
505
+ output: {
506
+ data: {
507
+ id: string;
508
+ cancellationPolicyId: string;
509
+ sortOrder: number;
510
+ cutoffMinutesBefore: number | null;
511
+ chargeType: "none" | "amount" | "percentage";
512
+ chargeAmountCents: number | null;
513
+ chargePercentBasisPoints: number | null;
514
+ active: boolean;
515
+ notes: string | null;
516
+ createdAt: string;
517
+ updatedAt: string;
518
+ }[];
519
+ total: number;
520
+ limit: number;
521
+ offset: number;
522
+ };
523
+ outputFormat: "json";
524
+ status: import("hono/utils/http-status").ContentfulStatusCode;
525
+ };
526
+ };
527
+ } & {
528
+ "/cancellation-policy-rules": {
529
+ $post: {
530
+ input: {};
531
+ output: {
532
+ data: {
533
+ id: string;
534
+ active: boolean;
535
+ sortOrder: number;
536
+ createdAt: string;
537
+ updatedAt: string;
538
+ notes: string | null;
539
+ cancellationPolicyId: string;
540
+ cutoffMinutesBefore: number | null;
541
+ chargeType: "none" | "amount" | "percentage";
542
+ chargeAmountCents: number | null;
543
+ chargePercentBasisPoints: number | null;
544
+ } | null;
545
+ };
546
+ outputFormat: "json";
547
+ status: 201;
548
+ };
549
+ };
550
+ } & {
551
+ "/cancellation-policy-rules/:id": {
552
+ $get: {
553
+ input: {
554
+ param: {
555
+ id: string;
556
+ };
557
+ };
558
+ output: {
559
+ error: string;
560
+ };
561
+ outputFormat: "json";
562
+ status: 404;
563
+ } | {
564
+ input: {
565
+ param: {
566
+ id: string;
567
+ };
568
+ };
569
+ output: {
570
+ data: {
571
+ id: string;
572
+ cancellationPolicyId: string;
573
+ sortOrder: number;
574
+ cutoffMinutesBefore: number | null;
575
+ chargeType: "none" | "amount" | "percentage";
576
+ chargeAmountCents: number | null;
577
+ chargePercentBasisPoints: number | null;
578
+ active: boolean;
579
+ notes: string | null;
580
+ createdAt: string;
581
+ updatedAt: string;
582
+ };
583
+ };
584
+ outputFormat: "json";
585
+ status: import("hono/utils/http-status").ContentfulStatusCode;
586
+ };
587
+ };
588
+ } & {
589
+ "/cancellation-policy-rules/:id": {
590
+ $patch: {
591
+ input: {
592
+ param: {
593
+ id: string;
594
+ };
595
+ };
596
+ output: {
597
+ error: string;
598
+ };
599
+ outputFormat: "json";
600
+ status: 404;
601
+ } | {
602
+ input: {
603
+ param: {
604
+ id: string;
605
+ };
606
+ };
607
+ output: {
608
+ data: {
609
+ id: string;
610
+ cancellationPolicyId: string;
611
+ sortOrder: number;
612
+ cutoffMinutesBefore: number | null;
613
+ chargeType: "none" | "amount" | "percentage";
614
+ chargeAmountCents: number | null;
615
+ chargePercentBasisPoints: number | null;
616
+ active: boolean;
617
+ notes: string | null;
618
+ createdAt: string;
619
+ updatedAt: string;
620
+ };
621
+ };
622
+ outputFormat: "json";
623
+ status: import("hono/utils/http-status").ContentfulStatusCode;
624
+ };
625
+ };
626
+ } & {
627
+ "/cancellation-policy-rules/:id": {
628
+ $delete: {
629
+ input: {
630
+ param: {
631
+ id: string;
632
+ };
633
+ };
634
+ output: {
635
+ error: string;
636
+ };
637
+ outputFormat: "json";
638
+ status: 404;
639
+ } | {
640
+ input: {
641
+ param: {
642
+ id: string;
643
+ };
644
+ };
645
+ output: {
646
+ success: true;
647
+ };
648
+ outputFormat: "json";
649
+ status: import("hono/utils/http-status").ContentfulStatusCode;
650
+ };
651
+ };
652
+ } & {
653
+ "/price-catalogs": {
654
+ $get: {
655
+ input: {};
656
+ output: {
657
+ data: {
658
+ id: string;
659
+ code: string;
660
+ name: string;
661
+ currencyCode: string | null;
662
+ catalogType: "internal" | "other" | "public" | "contract" | "net" | "gross" | "promo";
663
+ isDefault: boolean;
664
+ active: boolean;
665
+ notes: string | null;
666
+ metadata: {
667
+ [x: string]: import("hono/utils/types").JSONValue;
668
+ } | null;
669
+ createdAt: string;
670
+ updatedAt: string;
671
+ }[];
672
+ total: number;
673
+ limit: number;
674
+ offset: number;
675
+ };
676
+ outputFormat: "json";
677
+ status: import("hono/utils/http-status").ContentfulStatusCode;
678
+ };
679
+ };
680
+ } & {
681
+ "/price-catalogs": {
682
+ $post: {
683
+ input: {};
684
+ output: {
685
+ data: {
686
+ id: string;
687
+ name: string;
688
+ code: string;
689
+ active: boolean;
690
+ metadata: {
691
+ [x: string]: import("hono/utils/types").JSONValue;
692
+ } | null;
693
+ createdAt: string;
694
+ updatedAt: string;
695
+ notes: string | null;
696
+ isDefault: boolean;
697
+ currencyCode: string | null;
698
+ catalogType: "internal" | "other" | "public" | "contract" | "net" | "gross" | "promo";
699
+ } | null;
700
+ };
701
+ outputFormat: "json";
702
+ status: 201;
703
+ };
704
+ };
705
+ } & {
706
+ "/price-catalogs/:id": {
707
+ $get: {
708
+ input: {
709
+ param: {
710
+ id: string;
711
+ };
712
+ };
713
+ output: {
714
+ error: string;
715
+ };
716
+ outputFormat: "json";
717
+ status: 404;
718
+ } | {
719
+ input: {
720
+ param: {
721
+ id: string;
722
+ };
723
+ };
724
+ output: {
725
+ data: {
726
+ id: string;
727
+ code: string;
728
+ name: string;
729
+ currencyCode: string | null;
730
+ catalogType: "internal" | "other" | "public" | "contract" | "net" | "gross" | "promo";
731
+ isDefault: boolean;
732
+ active: boolean;
733
+ notes: string | null;
734
+ metadata: {
735
+ [x: string]: import("hono/utils/types").JSONValue;
736
+ } | null;
737
+ createdAt: string;
738
+ updatedAt: string;
739
+ };
740
+ };
741
+ outputFormat: "json";
742
+ status: import("hono/utils/http-status").ContentfulStatusCode;
743
+ };
744
+ };
745
+ } & {
746
+ "/price-catalogs/:id": {
747
+ $patch: {
748
+ input: {
749
+ param: {
750
+ id: string;
751
+ };
752
+ };
753
+ output: {
754
+ error: string;
755
+ };
756
+ outputFormat: "json";
757
+ status: 404;
758
+ } | {
759
+ input: {
760
+ param: {
761
+ id: string;
762
+ };
763
+ };
764
+ output: {
765
+ data: {
766
+ id: string;
767
+ code: string;
768
+ name: string;
769
+ currencyCode: string | null;
770
+ catalogType: "internal" | "other" | "public" | "contract" | "net" | "gross" | "promo";
771
+ isDefault: boolean;
772
+ active: boolean;
773
+ notes: string | null;
774
+ metadata: {
775
+ [x: string]: import("hono/utils/types").JSONValue;
776
+ } | null;
777
+ createdAt: string;
778
+ updatedAt: string;
779
+ };
780
+ };
781
+ outputFormat: "json";
782
+ status: import("hono/utils/http-status").ContentfulStatusCode;
783
+ };
784
+ };
785
+ } & {
786
+ "/price-catalogs/:id": {
787
+ $delete: {
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
+ success: true;
806
+ };
807
+ outputFormat: "json";
808
+ status: import("hono/utils/http-status").ContentfulStatusCode;
809
+ };
810
+ };
811
+ } & {
812
+ "/price-schedules": {
813
+ $get: {
814
+ input: {};
815
+ output: {
816
+ data: {
817
+ id: string;
818
+ priceCatalogId: string;
819
+ code: string | null;
820
+ name: string;
821
+ recurrenceRule: string;
822
+ timezone: string | null;
823
+ validFrom: string | null;
824
+ validTo: string | null;
825
+ weekdays: string[] | null;
826
+ priority: number;
827
+ active: boolean;
828
+ notes: string | null;
829
+ metadata: {
830
+ [x: string]: import("hono/utils/types").JSONValue;
831
+ } | null;
832
+ createdAt: string;
833
+ updatedAt: string;
834
+ }[];
835
+ total: number;
836
+ limit: number;
837
+ offset: number;
838
+ };
839
+ outputFormat: "json";
840
+ status: import("hono/utils/http-status").ContentfulStatusCode;
841
+ };
842
+ };
843
+ } & {
844
+ "/price-schedules": {
845
+ $post: {
846
+ input: {};
847
+ output: {
848
+ data: {
849
+ id: string;
850
+ name: string;
851
+ code: string | null;
852
+ active: boolean;
853
+ metadata: {
854
+ [x: string]: import("hono/utils/types").JSONValue;
855
+ } | null;
856
+ createdAt: string;
857
+ updatedAt: string;
858
+ notes: string | null;
859
+ priceCatalogId: string;
860
+ recurrenceRule: string;
861
+ timezone: string | null;
862
+ validFrom: string | null;
863
+ validTo: string | null;
864
+ weekdays: string[] | null;
865
+ priority: number;
866
+ } | null;
867
+ };
868
+ outputFormat: "json";
869
+ status: 201;
870
+ };
871
+ };
872
+ } & {
873
+ "/price-schedules/:id": {
874
+ $get: {
875
+ input: {
876
+ param: {
877
+ id: string;
878
+ };
879
+ };
880
+ output: {
881
+ error: string;
882
+ };
883
+ outputFormat: "json";
884
+ status: 404;
885
+ } | {
886
+ input: {
887
+ param: {
888
+ id: string;
889
+ };
890
+ };
891
+ output: {
892
+ data: {
893
+ id: string;
894
+ priceCatalogId: string;
895
+ code: string | null;
896
+ name: string;
897
+ recurrenceRule: string;
898
+ timezone: string | null;
899
+ validFrom: string | null;
900
+ validTo: string | null;
901
+ weekdays: string[] | null;
902
+ priority: number;
903
+ active: boolean;
904
+ notes: string | null;
905
+ metadata: {
906
+ [x: string]: import("hono/utils/types").JSONValue;
907
+ } | null;
908
+ createdAt: string;
909
+ updatedAt: string;
910
+ };
911
+ };
912
+ outputFormat: "json";
913
+ status: import("hono/utils/http-status").ContentfulStatusCode;
914
+ };
915
+ };
916
+ } & {
917
+ "/price-schedules/:id": {
918
+ $patch: {
919
+ input: {
920
+ param: {
921
+ id: string;
922
+ };
923
+ };
924
+ output: {
925
+ error: string;
926
+ };
927
+ outputFormat: "json";
928
+ status: 404;
929
+ } | {
930
+ input: {
931
+ param: {
932
+ id: string;
933
+ };
934
+ };
935
+ output: {
936
+ data: {
937
+ id: string;
938
+ priceCatalogId: string;
939
+ code: string | null;
940
+ name: string;
941
+ recurrenceRule: string;
942
+ timezone: string | null;
943
+ validFrom: string | null;
944
+ validTo: string | null;
945
+ weekdays: string[] | null;
946
+ priority: number;
947
+ active: boolean;
948
+ notes: string | null;
949
+ metadata: {
950
+ [x: string]: import("hono/utils/types").JSONValue;
951
+ } | null;
952
+ createdAt: string;
953
+ updatedAt: string;
954
+ };
955
+ };
956
+ outputFormat: "json";
957
+ status: import("hono/utils/http-status").ContentfulStatusCode;
958
+ };
959
+ };
960
+ } & {
961
+ "/price-schedules/:id": {
962
+ $delete: {
963
+ input: {
964
+ param: {
965
+ id: string;
966
+ };
967
+ };
968
+ output: {
969
+ error: string;
970
+ };
971
+ outputFormat: "json";
972
+ status: 404;
973
+ } | {
974
+ input: {
975
+ param: {
976
+ id: string;
977
+ };
978
+ };
979
+ output: {
980
+ success: true;
981
+ };
982
+ outputFormat: "json";
983
+ status: import("hono/utils/http-status").ContentfulStatusCode;
984
+ };
985
+ };
986
+ } & {
987
+ "/option-price-rules": {
988
+ $get: {
989
+ input: {};
990
+ output: {
991
+ data: {
992
+ id: string;
993
+ productId: string;
994
+ optionId: string;
995
+ priceCatalogId: string;
996
+ priceScheduleId: string | null;
997
+ cancellationPolicyId: string | null;
998
+ code: string | null;
999
+ name: string;
1000
+ description: string | null;
1001
+ pricingMode: "per_person" | "per_booking" | "starting_from" | "free" | "on_request";
1002
+ baseSellAmountCents: number | null;
1003
+ baseCostAmountCents: number | null;
1004
+ minPerBooking: number | null;
1005
+ maxPerBooking: number | null;
1006
+ allPricingCategories: boolean;
1007
+ isDefault: boolean;
1008
+ active: boolean;
1009
+ notes: string | null;
1010
+ metadata: {
1011
+ [x: string]: import("hono/utils/types").JSONValue;
1012
+ } | null;
1013
+ createdAt: string;
1014
+ updatedAt: string;
1015
+ }[];
1016
+ total: number;
1017
+ limit: number;
1018
+ offset: number;
1019
+ };
1020
+ outputFormat: "json";
1021
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1022
+ };
1023
+ };
1024
+ } & {
1025
+ "/option-price-rules": {
1026
+ $post: {
1027
+ input: {};
1028
+ output: {
1029
+ data: {
1030
+ id: string;
1031
+ name: string;
1032
+ productId: string;
1033
+ optionId: string;
1034
+ code: string | null;
1035
+ active: boolean;
1036
+ metadata: {
1037
+ [x: string]: import("hono/utils/types").JSONValue;
1038
+ } | null;
1039
+ createdAt: string;
1040
+ updatedAt: string;
1041
+ notes: string | null;
1042
+ isDefault: boolean;
1043
+ cancellationPolicyId: string | null;
1044
+ priceCatalogId: string;
1045
+ priceScheduleId: string | null;
1046
+ description: string | null;
1047
+ pricingMode: "per_person" | "per_booking" | "starting_from" | "free" | "on_request";
1048
+ baseSellAmountCents: number | null;
1049
+ baseCostAmountCents: number | null;
1050
+ minPerBooking: number | null;
1051
+ maxPerBooking: number | null;
1052
+ allPricingCategories: boolean;
1053
+ } | null;
1054
+ };
1055
+ outputFormat: "json";
1056
+ status: 201;
1057
+ };
1058
+ };
1059
+ } & {
1060
+ "/option-price-rules/:id": {
1061
+ $get: {
1062
+ input: {
1063
+ param: {
1064
+ id: string;
1065
+ };
1066
+ };
1067
+ output: {
1068
+ error: string;
1069
+ };
1070
+ outputFormat: "json";
1071
+ status: 404;
1072
+ } | {
1073
+ input: {
1074
+ param: {
1075
+ id: string;
1076
+ };
1077
+ };
1078
+ output: {
1079
+ data: {
1080
+ id: string;
1081
+ productId: string;
1082
+ optionId: string;
1083
+ priceCatalogId: string;
1084
+ priceScheduleId: string | null;
1085
+ cancellationPolicyId: string | null;
1086
+ code: string | null;
1087
+ name: string;
1088
+ description: string | null;
1089
+ pricingMode: "per_person" | "per_booking" | "starting_from" | "free" | "on_request";
1090
+ baseSellAmountCents: number | null;
1091
+ baseCostAmountCents: number | null;
1092
+ minPerBooking: number | null;
1093
+ maxPerBooking: number | null;
1094
+ allPricingCategories: boolean;
1095
+ isDefault: boolean;
1096
+ active: boolean;
1097
+ notes: string | null;
1098
+ metadata: {
1099
+ [x: string]: import("hono/utils/types").JSONValue;
1100
+ } | null;
1101
+ createdAt: string;
1102
+ updatedAt: string;
1103
+ };
1104
+ };
1105
+ outputFormat: "json";
1106
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1107
+ };
1108
+ };
1109
+ } & {
1110
+ "/option-price-rules/:id": {
1111
+ $patch: {
1112
+ input: {
1113
+ param: {
1114
+ id: string;
1115
+ };
1116
+ };
1117
+ output: {
1118
+ error: string;
1119
+ };
1120
+ outputFormat: "json";
1121
+ status: 404;
1122
+ } | {
1123
+ input: {
1124
+ param: {
1125
+ id: string;
1126
+ };
1127
+ };
1128
+ output: {
1129
+ data: {
1130
+ id: string;
1131
+ productId: string;
1132
+ optionId: string;
1133
+ priceCatalogId: string;
1134
+ priceScheduleId: string | null;
1135
+ cancellationPolicyId: string | null;
1136
+ code: string | null;
1137
+ name: string;
1138
+ description: string | null;
1139
+ pricingMode: "per_person" | "per_booking" | "starting_from" | "free" | "on_request";
1140
+ baseSellAmountCents: number | null;
1141
+ baseCostAmountCents: number | null;
1142
+ minPerBooking: number | null;
1143
+ maxPerBooking: number | null;
1144
+ allPricingCategories: boolean;
1145
+ isDefault: boolean;
1146
+ active: boolean;
1147
+ notes: string | null;
1148
+ metadata: {
1149
+ [x: string]: import("hono/utils/types").JSONValue;
1150
+ } | null;
1151
+ createdAt: string;
1152
+ updatedAt: string;
1153
+ };
1154
+ };
1155
+ outputFormat: "json";
1156
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1157
+ };
1158
+ };
1159
+ } & {
1160
+ "/option-price-rules/:id": {
1161
+ $delete: {
1162
+ input: {
1163
+ param: {
1164
+ id: string;
1165
+ };
1166
+ };
1167
+ output: {
1168
+ error: string;
1169
+ };
1170
+ outputFormat: "json";
1171
+ status: 404;
1172
+ } | {
1173
+ input: {
1174
+ param: {
1175
+ id: string;
1176
+ };
1177
+ };
1178
+ output: {
1179
+ success: true;
1180
+ };
1181
+ outputFormat: "json";
1182
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1183
+ };
1184
+ };
1185
+ } & {
1186
+ "/option-unit-price-rules": {
1187
+ $get: {
1188
+ input: {};
1189
+ output: {
1190
+ data: {
1191
+ id: string;
1192
+ optionPriceRuleId: string;
1193
+ optionId: string;
1194
+ unitId: string;
1195
+ pricingCategoryId: string | null;
1196
+ pricingMode: "per_person" | "per_booking" | "free" | "on_request" | "per_unit" | "included";
1197
+ sellAmountCents: number | null;
1198
+ costAmountCents: number | null;
1199
+ minQuantity: number | null;
1200
+ maxQuantity: number | null;
1201
+ active: boolean;
1202
+ sortOrder: number;
1203
+ notes: string | null;
1204
+ metadata: {
1205
+ [x: string]: import("hono/utils/types").JSONValue;
1206
+ } | null;
1207
+ createdAt: string;
1208
+ updatedAt: string;
1209
+ }[];
1210
+ total: number;
1211
+ limit: number;
1212
+ offset: number;
1213
+ };
1214
+ outputFormat: "json";
1215
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1216
+ };
1217
+ };
1218
+ } & {
1219
+ "/option-unit-price-rules": {
1220
+ $post: {
1221
+ input: {};
1222
+ output: {
1223
+ data: {
1224
+ id: string;
1225
+ optionId: string;
1226
+ unitId: string;
1227
+ active: boolean;
1228
+ sortOrder: number;
1229
+ metadata: {
1230
+ [x: string]: import("hono/utils/types").JSONValue;
1231
+ } | null;
1232
+ createdAt: string;
1233
+ updatedAt: string;
1234
+ pricingCategoryId: string | null;
1235
+ notes: string | null;
1236
+ pricingMode: "per_person" | "per_booking" | "free" | "on_request" | "per_unit" | "included";
1237
+ optionPriceRuleId: string;
1238
+ sellAmountCents: number | null;
1239
+ costAmountCents: number | null;
1240
+ minQuantity: number | null;
1241
+ maxQuantity: number | null;
1242
+ } | null;
1243
+ };
1244
+ outputFormat: "json";
1245
+ status: 201;
1246
+ };
1247
+ };
1248
+ } & {
1249
+ "/option-unit-price-rules/:id": {
1250
+ $get: {
1251
+ input: {
1252
+ param: {
1253
+ id: string;
1254
+ };
1255
+ };
1256
+ output: {
1257
+ error: string;
1258
+ };
1259
+ outputFormat: "json";
1260
+ status: 404;
1261
+ } | {
1262
+ input: {
1263
+ param: {
1264
+ id: string;
1265
+ };
1266
+ };
1267
+ output: {
1268
+ data: {
1269
+ id: string;
1270
+ optionPriceRuleId: string;
1271
+ optionId: string;
1272
+ unitId: string;
1273
+ pricingCategoryId: string | null;
1274
+ pricingMode: "per_person" | "per_booking" | "free" | "on_request" | "per_unit" | "included";
1275
+ sellAmountCents: number | null;
1276
+ costAmountCents: number | null;
1277
+ minQuantity: number | null;
1278
+ maxQuantity: number | null;
1279
+ active: boolean;
1280
+ sortOrder: number;
1281
+ notes: string | null;
1282
+ metadata: {
1283
+ [x: string]: import("hono/utils/types").JSONValue;
1284
+ } | null;
1285
+ createdAt: string;
1286
+ updatedAt: string;
1287
+ };
1288
+ };
1289
+ outputFormat: "json";
1290
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1291
+ };
1292
+ };
1293
+ } & {
1294
+ "/option-unit-price-rules/:id": {
1295
+ $patch: {
1296
+ input: {
1297
+ param: {
1298
+ id: string;
1299
+ };
1300
+ };
1301
+ output: {
1302
+ error: string;
1303
+ };
1304
+ outputFormat: "json";
1305
+ status: 404;
1306
+ } | {
1307
+ input: {
1308
+ param: {
1309
+ id: string;
1310
+ };
1311
+ };
1312
+ output: {
1313
+ data: {
1314
+ id: string;
1315
+ optionPriceRuleId: string;
1316
+ optionId: string;
1317
+ unitId: string;
1318
+ pricingCategoryId: string | null;
1319
+ pricingMode: "per_person" | "per_booking" | "free" | "on_request" | "per_unit" | "included";
1320
+ sellAmountCents: number | null;
1321
+ costAmountCents: number | null;
1322
+ minQuantity: number | null;
1323
+ maxQuantity: number | null;
1324
+ active: boolean;
1325
+ sortOrder: number;
1326
+ notes: string | null;
1327
+ metadata: {
1328
+ [x: string]: import("hono/utils/types").JSONValue;
1329
+ } | null;
1330
+ createdAt: string;
1331
+ updatedAt: string;
1332
+ };
1333
+ };
1334
+ outputFormat: "json";
1335
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1336
+ };
1337
+ };
1338
+ } & {
1339
+ "/option-unit-price-rules/:id": {
1340
+ $delete: {
1341
+ input: {
1342
+ param: {
1343
+ id: string;
1344
+ };
1345
+ };
1346
+ output: {
1347
+ error: string;
1348
+ };
1349
+ outputFormat: "json";
1350
+ status: 404;
1351
+ } | {
1352
+ input: {
1353
+ param: {
1354
+ id: string;
1355
+ };
1356
+ };
1357
+ output: {
1358
+ success: true;
1359
+ };
1360
+ outputFormat: "json";
1361
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1362
+ };
1363
+ };
1364
+ } & {
1365
+ "/option-start-time-rules": {
1366
+ $get: {
1367
+ input: {};
1368
+ output: {
1369
+ data: {
1370
+ id: string;
1371
+ optionPriceRuleId: string;
1372
+ optionId: string;
1373
+ startTimeId: string;
1374
+ ruleMode: "included" | "excluded" | "override" | "adjustment";
1375
+ adjustmentType: "fixed" | "percentage" | null;
1376
+ sellAdjustmentCents: number | null;
1377
+ costAdjustmentCents: number | null;
1378
+ adjustmentBasisPoints: number | null;
1379
+ active: boolean;
1380
+ notes: string | null;
1381
+ createdAt: string;
1382
+ updatedAt: string;
1383
+ }[];
1384
+ total: number;
1385
+ limit: number;
1386
+ offset: number;
1387
+ };
1388
+ outputFormat: "json";
1389
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1390
+ };
1391
+ };
1392
+ } & {
1393
+ "/option-start-time-rules": {
1394
+ $post: {
1395
+ input: {};
1396
+ output: {
1397
+ data: {
1398
+ id: string;
1399
+ optionId: string;
1400
+ active: boolean;
1401
+ createdAt: string;
1402
+ updatedAt: string;
1403
+ notes: string | null;
1404
+ optionPriceRuleId: string;
1405
+ startTimeId: string;
1406
+ ruleMode: "included" | "excluded" | "override" | "adjustment";
1407
+ adjustmentType: "fixed" | "percentage" | null;
1408
+ sellAdjustmentCents: number | null;
1409
+ costAdjustmentCents: number | null;
1410
+ adjustmentBasisPoints: number | null;
1411
+ } | null;
1412
+ };
1413
+ outputFormat: "json";
1414
+ status: 201;
1415
+ };
1416
+ };
1417
+ } & {
1418
+ "/option-start-time-rules/:id": {
1419
+ $get: {
1420
+ input: {
1421
+ param: {
1422
+ id: string;
1423
+ };
1424
+ };
1425
+ output: {
1426
+ error: string;
1427
+ };
1428
+ outputFormat: "json";
1429
+ status: 404;
1430
+ } | {
1431
+ input: {
1432
+ param: {
1433
+ id: string;
1434
+ };
1435
+ };
1436
+ output: {
1437
+ data: {
1438
+ id: string;
1439
+ optionPriceRuleId: string;
1440
+ optionId: string;
1441
+ startTimeId: string;
1442
+ ruleMode: "included" | "excluded" | "override" | "adjustment";
1443
+ adjustmentType: "fixed" | "percentage" | null;
1444
+ sellAdjustmentCents: number | null;
1445
+ costAdjustmentCents: number | null;
1446
+ adjustmentBasisPoints: number | null;
1447
+ active: boolean;
1448
+ notes: string | null;
1449
+ createdAt: string;
1450
+ updatedAt: string;
1451
+ };
1452
+ };
1453
+ outputFormat: "json";
1454
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1455
+ };
1456
+ };
1457
+ } & {
1458
+ "/option-start-time-rules/:id": {
1459
+ $patch: {
1460
+ input: {
1461
+ param: {
1462
+ id: string;
1463
+ };
1464
+ };
1465
+ output: {
1466
+ error: string;
1467
+ };
1468
+ outputFormat: "json";
1469
+ status: 404;
1470
+ } | {
1471
+ input: {
1472
+ param: {
1473
+ id: string;
1474
+ };
1475
+ };
1476
+ output: {
1477
+ data: {
1478
+ id: string;
1479
+ optionPriceRuleId: string;
1480
+ optionId: string;
1481
+ startTimeId: string;
1482
+ ruleMode: "included" | "excluded" | "override" | "adjustment";
1483
+ adjustmentType: "fixed" | "percentage" | null;
1484
+ sellAdjustmentCents: number | null;
1485
+ costAdjustmentCents: number | null;
1486
+ adjustmentBasisPoints: number | null;
1487
+ active: boolean;
1488
+ notes: string | null;
1489
+ createdAt: string;
1490
+ updatedAt: string;
1491
+ };
1492
+ };
1493
+ outputFormat: "json";
1494
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1495
+ };
1496
+ };
1497
+ } & {
1498
+ "/option-start-time-rules/:id": {
1499
+ $delete: {
1500
+ input: {
1501
+ param: {
1502
+ id: string;
1503
+ };
1504
+ };
1505
+ output: {
1506
+ error: string;
1507
+ };
1508
+ outputFormat: "json";
1509
+ status: 404;
1510
+ } | {
1511
+ input: {
1512
+ param: {
1513
+ id: string;
1514
+ };
1515
+ };
1516
+ output: {
1517
+ success: true;
1518
+ };
1519
+ outputFormat: "json";
1520
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1521
+ };
1522
+ };
1523
+ } & {
1524
+ "/option-unit-tiers": {
1525
+ $get: {
1526
+ input: {};
1527
+ output: {
1528
+ data: {
1529
+ id: string;
1530
+ optionUnitPriceRuleId: string;
1531
+ minQuantity: number;
1532
+ maxQuantity: number | null;
1533
+ sellAmountCents: number | null;
1534
+ costAmountCents: number | null;
1535
+ active: boolean;
1536
+ sortOrder: number;
1537
+ createdAt: string;
1538
+ updatedAt: string;
1539
+ }[];
1540
+ total: number;
1541
+ limit: number;
1542
+ offset: number;
1543
+ };
1544
+ outputFormat: "json";
1545
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1546
+ };
1547
+ };
1548
+ } & {
1549
+ "/option-unit-tiers": {
1550
+ $post: {
1551
+ input: {};
1552
+ output: {
1553
+ data: {
1554
+ id: string;
1555
+ active: boolean;
1556
+ sortOrder: number;
1557
+ createdAt: string;
1558
+ updatedAt: string;
1559
+ sellAmountCents: number | null;
1560
+ costAmountCents: number | null;
1561
+ minQuantity: number;
1562
+ maxQuantity: number | null;
1563
+ optionUnitPriceRuleId: string;
1564
+ } | null;
1565
+ };
1566
+ outputFormat: "json";
1567
+ status: 201;
1568
+ };
1569
+ };
1570
+ } & {
1571
+ "/option-unit-tiers/:id": {
1572
+ $get: {
1573
+ input: {
1574
+ param: {
1575
+ id: string;
1576
+ };
1577
+ };
1578
+ output: {
1579
+ error: string;
1580
+ };
1581
+ outputFormat: "json";
1582
+ status: 404;
1583
+ } | {
1584
+ input: {
1585
+ param: {
1586
+ id: string;
1587
+ };
1588
+ };
1589
+ output: {
1590
+ data: {
1591
+ id: string;
1592
+ optionUnitPriceRuleId: string;
1593
+ minQuantity: number;
1594
+ maxQuantity: number | null;
1595
+ sellAmountCents: number | null;
1596
+ costAmountCents: number | null;
1597
+ active: boolean;
1598
+ sortOrder: number;
1599
+ createdAt: string;
1600
+ updatedAt: string;
1601
+ };
1602
+ };
1603
+ outputFormat: "json";
1604
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1605
+ };
1606
+ };
1607
+ } & {
1608
+ "/option-unit-tiers/:id": {
1609
+ $patch: {
1610
+ input: {
1611
+ param: {
1612
+ id: string;
1613
+ };
1614
+ };
1615
+ output: {
1616
+ error: string;
1617
+ };
1618
+ outputFormat: "json";
1619
+ status: 404;
1620
+ } | {
1621
+ input: {
1622
+ param: {
1623
+ id: string;
1624
+ };
1625
+ };
1626
+ output: {
1627
+ data: {
1628
+ id: string;
1629
+ optionUnitPriceRuleId: string;
1630
+ minQuantity: number;
1631
+ maxQuantity: number | null;
1632
+ sellAmountCents: number | null;
1633
+ costAmountCents: number | null;
1634
+ active: boolean;
1635
+ sortOrder: number;
1636
+ createdAt: string;
1637
+ updatedAt: string;
1638
+ };
1639
+ };
1640
+ outputFormat: "json";
1641
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1642
+ };
1643
+ };
1644
+ } & {
1645
+ "/option-unit-tiers/:id": {
1646
+ $delete: {
1647
+ input: {
1648
+ param: {
1649
+ id: string;
1650
+ };
1651
+ };
1652
+ output: {
1653
+ error: string;
1654
+ };
1655
+ outputFormat: "json";
1656
+ status: 404;
1657
+ } | {
1658
+ input: {
1659
+ param: {
1660
+ id: string;
1661
+ };
1662
+ };
1663
+ output: {
1664
+ success: true;
1665
+ };
1666
+ outputFormat: "json";
1667
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1668
+ };
1669
+ };
1670
+ } & {
1671
+ "/pickup-price-rules": {
1672
+ $get: {
1673
+ input: {};
1674
+ output: {
1675
+ data: {
1676
+ id: string;
1677
+ optionPriceRuleId: string;
1678
+ optionId: string;
1679
+ pickupPointId: string;
1680
+ pricingMode: "per_person" | "per_booking" | "on_request" | "included" | "unavailable";
1681
+ sellAmountCents: number | null;
1682
+ costAmountCents: number | null;
1683
+ active: boolean;
1684
+ sortOrder: number;
1685
+ notes: string | null;
1686
+ createdAt: string;
1687
+ updatedAt: string;
1688
+ }[];
1689
+ total: number;
1690
+ limit: number;
1691
+ offset: number;
1692
+ };
1693
+ outputFormat: "json";
1694
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1695
+ };
1696
+ };
1697
+ } & {
1698
+ "/pickup-price-rules": {
1699
+ $post: {
1700
+ input: {};
1701
+ output: {
1702
+ data: {
1703
+ id: string;
1704
+ optionId: string;
1705
+ active: boolean;
1706
+ sortOrder: number;
1707
+ createdAt: string;
1708
+ updatedAt: string;
1709
+ notes: string | null;
1710
+ pricingMode: "per_person" | "per_booking" | "on_request" | "included" | "unavailable";
1711
+ optionPriceRuleId: string;
1712
+ sellAmountCents: number | null;
1713
+ costAmountCents: number | null;
1714
+ pickupPointId: string;
1715
+ } | null;
1716
+ };
1717
+ outputFormat: "json";
1718
+ status: 201;
1719
+ };
1720
+ };
1721
+ } & {
1722
+ "/pickup-price-rules/:id": {
1723
+ $get: {
1724
+ input: {
1725
+ param: {
1726
+ id: string;
1727
+ };
1728
+ };
1729
+ output: {
1730
+ error: string;
1731
+ };
1732
+ outputFormat: "json";
1733
+ status: 404;
1734
+ } | {
1735
+ input: {
1736
+ param: {
1737
+ id: string;
1738
+ };
1739
+ };
1740
+ output: {
1741
+ data: {
1742
+ id: string;
1743
+ optionPriceRuleId: string;
1744
+ optionId: string;
1745
+ pickupPointId: string;
1746
+ pricingMode: "per_person" | "per_booking" | "on_request" | "included" | "unavailable";
1747
+ sellAmountCents: number | null;
1748
+ costAmountCents: number | null;
1749
+ active: boolean;
1750
+ sortOrder: number;
1751
+ notes: string | null;
1752
+ createdAt: string;
1753
+ updatedAt: string;
1754
+ };
1755
+ };
1756
+ outputFormat: "json";
1757
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1758
+ };
1759
+ };
1760
+ } & {
1761
+ "/pickup-price-rules/:id": {
1762
+ $patch: {
1763
+ input: {
1764
+ param: {
1765
+ id: string;
1766
+ };
1767
+ };
1768
+ output: {
1769
+ error: string;
1770
+ };
1771
+ outputFormat: "json";
1772
+ status: 404;
1773
+ } | {
1774
+ input: {
1775
+ param: {
1776
+ id: string;
1777
+ };
1778
+ };
1779
+ output: {
1780
+ data: {
1781
+ id: string;
1782
+ optionPriceRuleId: string;
1783
+ optionId: string;
1784
+ pickupPointId: string;
1785
+ pricingMode: "per_person" | "per_booking" | "on_request" | "included" | "unavailable";
1786
+ sellAmountCents: number | null;
1787
+ costAmountCents: number | null;
1788
+ active: boolean;
1789
+ sortOrder: number;
1790
+ notes: string | null;
1791
+ createdAt: string;
1792
+ updatedAt: string;
1793
+ };
1794
+ };
1795
+ outputFormat: "json";
1796
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1797
+ };
1798
+ };
1799
+ } & {
1800
+ "/pickup-price-rules/:id": {
1801
+ $delete: {
1802
+ input: {
1803
+ param: {
1804
+ id: string;
1805
+ };
1806
+ };
1807
+ output: {
1808
+ error: string;
1809
+ };
1810
+ outputFormat: "json";
1811
+ status: 404;
1812
+ } | {
1813
+ input: {
1814
+ param: {
1815
+ id: string;
1816
+ };
1817
+ };
1818
+ output: {
1819
+ success: true;
1820
+ };
1821
+ outputFormat: "json";
1822
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1823
+ };
1824
+ };
1825
+ } & {
1826
+ "/dropoff-price-rules": {
1827
+ $get: {
1828
+ input: {};
1829
+ output: {
1830
+ data: {
1831
+ id: string;
1832
+ optionPriceRuleId: string;
1833
+ optionId: string;
1834
+ facilityId: string | null;
1835
+ dropoffCode: string | null;
1836
+ dropoffName: string;
1837
+ pricingMode: "per_person" | "per_booking" | "on_request" | "included" | "unavailable";
1838
+ sellAmountCents: number | null;
1839
+ costAmountCents: number | null;
1840
+ active: boolean;
1841
+ sortOrder: number;
1842
+ notes: string | null;
1843
+ createdAt: string;
1844
+ updatedAt: string;
1845
+ }[];
1846
+ total: number;
1847
+ limit: number;
1848
+ offset: number;
1849
+ };
1850
+ outputFormat: "json";
1851
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1852
+ };
1853
+ };
1854
+ } & {
1855
+ "/dropoff-price-rules": {
1856
+ $post: {
1857
+ input: {};
1858
+ output: {
1859
+ data: {
1860
+ id: string;
1861
+ optionId: string;
1862
+ active: boolean;
1863
+ sortOrder: number;
1864
+ createdAt: string;
1865
+ updatedAt: string;
1866
+ notes: string | null;
1867
+ pricingMode: "per_person" | "per_booking" | "on_request" | "included" | "unavailable";
1868
+ optionPriceRuleId: string;
1869
+ sellAmountCents: number | null;
1870
+ costAmountCents: number | null;
1871
+ facilityId: string | null;
1872
+ dropoffCode: string | null;
1873
+ dropoffName: string;
1874
+ } | null;
1875
+ };
1876
+ outputFormat: "json";
1877
+ status: 201;
1878
+ };
1879
+ };
1880
+ } & {
1881
+ "/dropoff-price-rules/:id": {
1882
+ $get: {
1883
+ input: {
1884
+ param: {
1885
+ id: string;
1886
+ };
1887
+ };
1888
+ output: {
1889
+ error: string;
1890
+ };
1891
+ outputFormat: "json";
1892
+ status: 404;
1893
+ } | {
1894
+ input: {
1895
+ param: {
1896
+ id: string;
1897
+ };
1898
+ };
1899
+ output: {
1900
+ data: {
1901
+ id: string;
1902
+ optionPriceRuleId: string;
1903
+ optionId: string;
1904
+ facilityId: string | null;
1905
+ dropoffCode: string | null;
1906
+ dropoffName: string;
1907
+ pricingMode: "per_person" | "per_booking" | "on_request" | "included" | "unavailable";
1908
+ sellAmountCents: number | null;
1909
+ costAmountCents: number | null;
1910
+ active: boolean;
1911
+ sortOrder: number;
1912
+ notes: string | null;
1913
+ createdAt: string;
1914
+ updatedAt: string;
1915
+ };
1916
+ };
1917
+ outputFormat: "json";
1918
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1919
+ };
1920
+ };
1921
+ } & {
1922
+ "/dropoff-price-rules/:id": {
1923
+ $patch: {
1924
+ input: {
1925
+ param: {
1926
+ id: string;
1927
+ };
1928
+ };
1929
+ output: {
1930
+ error: string;
1931
+ };
1932
+ outputFormat: "json";
1933
+ status: 404;
1934
+ } | {
1935
+ input: {
1936
+ param: {
1937
+ id: string;
1938
+ };
1939
+ };
1940
+ output: {
1941
+ data: {
1942
+ id: string;
1943
+ optionPriceRuleId: string;
1944
+ optionId: string;
1945
+ facilityId: string | null;
1946
+ dropoffCode: string | null;
1947
+ dropoffName: string;
1948
+ pricingMode: "per_person" | "per_booking" | "on_request" | "included" | "unavailable";
1949
+ sellAmountCents: number | null;
1950
+ costAmountCents: number | null;
1951
+ active: boolean;
1952
+ sortOrder: number;
1953
+ notes: string | null;
1954
+ createdAt: string;
1955
+ updatedAt: string;
1956
+ };
1957
+ };
1958
+ outputFormat: "json";
1959
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1960
+ };
1961
+ };
1962
+ } & {
1963
+ "/dropoff-price-rules/:id": {
1964
+ $delete: {
1965
+ input: {
1966
+ param: {
1967
+ id: string;
1968
+ };
1969
+ };
1970
+ output: {
1971
+ error: string;
1972
+ };
1973
+ outputFormat: "json";
1974
+ status: 404;
1975
+ } | {
1976
+ input: {
1977
+ param: {
1978
+ id: string;
1979
+ };
1980
+ };
1981
+ output: {
1982
+ success: true;
1983
+ };
1984
+ outputFormat: "json";
1985
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1986
+ };
1987
+ };
1988
+ } & {
1989
+ "/extra-price-rules": {
1990
+ $get: {
1991
+ input: {};
1992
+ output: {
1993
+ data: {
1994
+ id: string;
1995
+ optionPriceRuleId: string;
1996
+ optionId: string;
1997
+ productExtraId: string | null;
1998
+ optionExtraConfigId: string | null;
1999
+ pricingMode: "per_person" | "per_booking" | "on_request" | "included" | "unavailable";
2000
+ sellAmountCents: number | null;
2001
+ costAmountCents: number | null;
2002
+ active: boolean;
2003
+ sortOrder: number;
2004
+ notes: string | null;
2005
+ metadata: {
2006
+ [x: string]: import("hono/utils/types").JSONValue;
2007
+ } | null;
2008
+ createdAt: string;
2009
+ updatedAt: string;
2010
+ }[];
2011
+ total: number;
2012
+ limit: number;
2013
+ offset: number;
2014
+ };
2015
+ outputFormat: "json";
2016
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2017
+ };
2018
+ };
2019
+ } & {
2020
+ "/extra-price-rules": {
2021
+ $post: {
2022
+ input: {};
2023
+ output: {
2024
+ data: {
2025
+ id: string;
2026
+ optionId: string;
2027
+ active: boolean;
2028
+ sortOrder: number;
2029
+ metadata: {
2030
+ [x: string]: import("hono/utils/types").JSONValue;
2031
+ } | null;
2032
+ createdAt: string;
2033
+ updatedAt: string;
2034
+ notes: string | null;
2035
+ pricingMode: "per_person" | "per_booking" | "on_request" | "included" | "unavailable";
2036
+ optionPriceRuleId: string;
2037
+ sellAmountCents: number | null;
2038
+ costAmountCents: number | null;
2039
+ productExtraId: string | null;
2040
+ optionExtraConfigId: string | null;
2041
+ } | null;
2042
+ };
2043
+ outputFormat: "json";
2044
+ status: 201;
2045
+ };
2046
+ };
2047
+ } & {
2048
+ "/extra-price-rules/:id": {
2049
+ $get: {
2050
+ input: {
2051
+ param: {
2052
+ id: string;
2053
+ };
2054
+ };
2055
+ output: {
2056
+ error: string;
2057
+ };
2058
+ outputFormat: "json";
2059
+ status: 404;
2060
+ } | {
2061
+ input: {
2062
+ param: {
2063
+ id: string;
2064
+ };
2065
+ };
2066
+ output: {
2067
+ data: {
2068
+ id: string;
2069
+ optionPriceRuleId: string;
2070
+ optionId: string;
2071
+ productExtraId: string | null;
2072
+ optionExtraConfigId: string | null;
2073
+ pricingMode: "per_person" | "per_booking" | "on_request" | "included" | "unavailable";
2074
+ sellAmountCents: number | null;
2075
+ costAmountCents: number | null;
2076
+ active: boolean;
2077
+ sortOrder: number;
2078
+ notes: string | null;
2079
+ metadata: {
2080
+ [x: string]: import("hono/utils/types").JSONValue;
2081
+ } | null;
2082
+ createdAt: string;
2083
+ updatedAt: string;
2084
+ };
2085
+ };
2086
+ outputFormat: "json";
2087
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2088
+ };
2089
+ };
2090
+ } & {
2091
+ "/extra-price-rules/:id": {
2092
+ $patch: {
2093
+ input: {
2094
+ param: {
2095
+ id: string;
2096
+ };
2097
+ };
2098
+ output: {
2099
+ error: string;
2100
+ };
2101
+ outputFormat: "json";
2102
+ status: 404;
2103
+ } | {
2104
+ input: {
2105
+ param: {
2106
+ id: string;
2107
+ };
2108
+ };
2109
+ output: {
2110
+ data: {
2111
+ id: string;
2112
+ optionPriceRuleId: string;
2113
+ optionId: string;
2114
+ productExtraId: string | null;
2115
+ optionExtraConfigId: string | null;
2116
+ pricingMode: "per_person" | "per_booking" | "on_request" | "included" | "unavailable";
2117
+ sellAmountCents: number | null;
2118
+ costAmountCents: number | null;
2119
+ active: boolean;
2120
+ sortOrder: number;
2121
+ notes: string | null;
2122
+ metadata: {
2123
+ [x: string]: import("hono/utils/types").JSONValue;
2124
+ } | null;
2125
+ createdAt: string;
2126
+ updatedAt: string;
2127
+ };
2128
+ };
2129
+ outputFormat: "json";
2130
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2131
+ };
2132
+ };
2133
+ } & {
2134
+ "/extra-price-rules/:id": {
2135
+ $delete: {
2136
+ input: {
2137
+ param: {
2138
+ id: string;
2139
+ };
2140
+ };
2141
+ output: {
2142
+ error: string;
2143
+ };
2144
+ outputFormat: "json";
2145
+ status: 404;
2146
+ } | {
2147
+ input: {
2148
+ param: {
2149
+ id: string;
2150
+ };
2151
+ };
2152
+ output: {
2153
+ success: true;
2154
+ };
2155
+ outputFormat: "json";
2156
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2157
+ };
2158
+ };
2159
+ }, "/", "/extra-price-rules/:id">;
2160
+ export type PricingRoutes = typeof pricingRoutes;
2161
+ export {};
2162
+ //# sourceMappingURL=routes.d.ts.map