@voyantjs/cruises 0.40.1 → 0.41.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/routes.d.ts CHANGED
@@ -1,9 +1,11 @@
1
+ import type { EventBus } from "@voyantjs/core";
1
2
  import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
2
3
  import type { SourceAdapterRegistry } from "@voyantjs/catalog/booking-engine";
3
4
  type Env = {
4
5
  Variables: {
5
6
  db: PostgresJsDatabase;
6
7
  userId?: string;
8
+ eventBus?: EventBus;
7
9
  /**
8
10
  * Catalog source-adapter registry. Required for the `/:key`
9
11
  * external branch — the route dispatches through `getCruiseContent`
@@ -128,114 +130,57 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
128
130
  };
129
131
  };
130
132
  } & {
131
- "/:key": {
132
- $get: {
133
+ "/enrichment/:programId": {
134
+ $put: {
133
135
  input: {
134
136
  param: {
135
- key: string;
137
+ programId: string;
136
138
  };
137
139
  };
138
140
  output: {
139
141
  error: string;
140
- detail: string;
141
142
  };
142
143
  outputFormat: "json";
143
- status: 400;
144
+ status: 404;
144
145
  } | {
145
146
  input: {
146
147
  param: {
147
- key: string;
148
+ programId: string;
148
149
  };
149
150
  };
150
151
  output: {
151
- error: string;
152
- detail: string;
152
+ data: {
153
+ id: string;
154
+ name: string;
155
+ createdAt: string;
156
+ updatedAt: string;
157
+ description: string | null;
158
+ cruiseId: string;
159
+ kind: "other" | "naturalist" | "historian" | "photographer" | "lecturer" | "expert";
160
+ title: string | null;
161
+ sortOrder: number;
162
+ bioImageUrl: string | null;
163
+ };
153
164
  };
154
165
  outputFormat: "json";
155
- status: 503;
156
- } | {
166
+ status: import("hono/utils/http-status").ContentfulStatusCode;
167
+ };
168
+ };
169
+ } & {
170
+ "/enrichment/:programId": {
171
+ $delete: {
157
172
  input: {
158
173
  param: {
159
- key: string;
160
- };
161
- };
162
- output: {
163
- data: {
164
- source: string;
165
- sourceProvider: string;
166
- sourceRef: string;
167
- entityId: string;
168
- content: {
169
- cruise: {
170
- id: string;
171
- name: string;
172
- status?: string | undefined;
173
- description?: string | null | undefined;
174
- cruise_type?: string | null | undefined;
175
- hero_image_url?: string | null | undefined;
176
- highlights?: string[] | undefined;
177
- cruise_line?: string | null | undefined;
178
- duration_nights?: number | null | undefined;
179
- embarkation_port?: string | null | undefined;
180
- disembarkation_port?: string | null | undefined;
181
- };
182
- sailings: {
183
- id: string;
184
- start_date: string;
185
- end_date: string;
186
- source_ref?: string | null | undefined;
187
- duration_nights?: number | null | undefined;
188
- status?: string | null | undefined;
189
- embarkation_port?: string | null | undefined;
190
- disembarkation_port?: string | null | undefined;
191
- }[];
192
- cabin_categories: {
193
- id: string;
194
- name: string;
195
- inclusions: string[];
196
- code?: string | null | undefined;
197
- description?: string | null | undefined;
198
- type?: string | null | undefined;
199
- capacity_min?: number | null | undefined;
200
- capacity_max?: number | null | undefined;
201
- }[];
202
- itinerary_stops: {
203
- day_number: number;
204
- port_name: string;
205
- is_at_sea: boolean;
206
- date?: string | null | undefined;
207
- arrival_time?: string | null | undefined;
208
- departure_time?: string | null | undefined;
209
- description?: string | null | undefined;
210
- }[];
211
- policies: {
212
- kind: "supplier_notes" | "payment" | "cancellation" | "requirements";
213
- body: string;
214
- rules?: import("hono/utils/types").JSONValue | undefined;
215
- }[];
216
- ship?: {
217
- name: string;
218
- id?: string | null | undefined;
219
- description?: string | null | undefined;
220
- capacity?: number | null | undefined;
221
- decks?: number | null | undefined;
222
- year_built?: number | null | undefined;
223
- } | null | undefined;
224
- };
225
- servedLocale: string;
226
- matchKind: import("@voyantjs/catalog").ContentLocaleMatchKind;
227
- contentSource: "sourced-cache" | "sourced-fresh" | "synthesized";
228
- servedStale: boolean;
229
- synthesized: boolean;
230
- machineTranslated: boolean;
174
+ programId: string;
231
175
  };
232
176
  };
233
- outputFormat: "json";
234
- status: import("hono/utils/http-status").ContentfulStatusCode;
177
+ output: null;
178
+ outputFormat: "body";
179
+ status: 204;
235
180
  } | {
236
181
  input: {
237
182
  param: {
238
- key: string;
183
+ programId: string;
239
184
  };
240
185
  };
241
186
  output: {
@@ -243,97 +188,44 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
243
188
  };
244
189
  outputFormat: "json";
245
190
  status: 404;
246
- } | {
247
- input: {
248
- param: {
249
- key: string;
250
- };
251
- };
191
+ };
192
+ };
193
+ } & {
194
+ "/sailings": {
195
+ $get: {
196
+ input: {};
252
197
  output: {
253
198
  data: {
254
- source: string;
255
- sourceProvider: null;
256
- sourceRef: null;
257
- cruise: {
258
- id: string;
259
- name: string;
260
- createdAt: string;
261
- updatedAt: string;
262
- slug: string;
263
- status: "live" | "draft" | "awaiting_review" | "archived";
264
- description: string | null;
265
- lineSupplierId: string | null;
266
- externalRefs: {
267
- [x: string]: string;
268
- } | null;
269
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
270
- cruiseType: "ocean" | "river" | "expedition" | "coastal";
271
- defaultShipId: string | null;
272
- nights: number;
273
- embarkPortFacilityId: string | null;
274
- disembarkPortFacilityId: string | null;
275
- shortDescription: string | null;
276
- highlights: string[] | null;
277
- inclusionsHtml: string | null;
278
- exclusionsHtml: string | null;
279
- regions: string[] | null;
280
- themes: string[] | null;
281
- heroImageUrl: string | null;
282
- mapImageUrl: string | null;
283
- lowestPriceCached: string | null;
284
- lowestPriceCurrencyCached: string | null;
285
- earliestDepartureCached: string | null;
286
- latestDepartureCached: string | null;
287
- sailings?: {
288
- id: string;
289
- createdAt: string;
290
- updatedAt: string;
291
- externalRefs: {
292
- [x: string]: string;
293
- } | null;
294
- shipId: string;
295
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
296
- embarkPortFacilityId: string | null;
297
- disembarkPortFacilityId: string | null;
298
- cruiseId: string;
299
- departureDate: string;
300
- returnDate: string;
301
- direction: "upstream" | "downstream" | "round_trip" | "one_way" | null;
302
- availabilityNote: string | null;
303
- isCharter: boolean;
304
- salesStatus: "open" | "on_request" | "wait_list" | "sold_out" | "closed";
305
- lastSyncedAt: string | null;
306
- }[] | undefined;
307
- days?: {
308
- id: string;
309
- createdAt: string;
310
- updatedAt: string;
311
- description: string | null;
312
- meals: {
313
- breakfast?: boolean | undefined;
314
- lunch?: boolean | undefined;
315
- dinner?: boolean | undefined;
316
- } | null;
317
- cruiseId: string;
318
- departureTime: string | null;
319
- title: string | null;
320
- dayNumber: number;
321
- portFacilityId: string | null;
322
- arrivalTime: string | null;
323
- isOvernight: boolean;
324
- isSeaDay: boolean;
325
- isExpeditionLanding: boolean;
326
- }[] | undefined;
327
- };
328
- };
199
+ id: string;
200
+ cruiseId: string;
201
+ shipId: string;
202
+ departureDate: string;
203
+ returnDate: string;
204
+ embarkPortFacilityId: string | null;
205
+ disembarkPortFacilityId: string | null;
206
+ direction: "upstream" | "downstream" | "round_trip" | "one_way" | null;
207
+ availabilityNote: string | null;
208
+ isCharter: boolean;
209
+ salesStatus: "open" | "on_request" | "wait_list" | "sold_out" | "closed";
210
+ externalRefs: {
211
+ [x: string]: string;
212
+ } | null;
213
+ customerPaymentPolicy: import("hono/utils/types").JSONValue;
214
+ lastSyncedAt: string | null;
215
+ createdAt: string;
216
+ updatedAt: string;
217
+ }[];
218
+ total: number;
219
+ limit: number;
220
+ offset: number;
329
221
  };
330
222
  outputFormat: "json";
331
223
  status: import("hono/utils/http-status").ContentfulStatusCode;
332
224
  };
333
225
  };
334
226
  } & {
335
- "/:key": {
336
- $put: {
227
+ "/sailings/:key": {
228
+ $get: {
337
229
  input: {
338
230
  param: {
339
231
  key: string;
@@ -356,7 +248,7 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
356
248
  detail: string;
357
249
  };
358
250
  outputFormat: "json";
359
- status: 409;
251
+ status: 501;
360
252
  } | {
361
253
  input: {
362
254
  param: {
@@ -368,6 +260,19 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
368
260
  };
369
261
  outputFormat: "json";
370
262
  status: 404;
263
+ } | {
264
+ input: {
265
+ param: {
266
+ key: string;
267
+ };
268
+ };
269
+ output: {
270
+ data: {
271
+ [x: string]: import("hono/utils/types").JSONValue;
272
+ };
273
+ };
274
+ outputFormat: "json";
275
+ status: import("hono/utils/http-status").ContentfulStatusCode;
371
276
  } | {
372
277
  input: {
373
278
  param: {
@@ -377,34 +282,78 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
377
282
  output: {
378
283
  data: {
379
284
  id: string;
380
- name: string;
381
285
  createdAt: string;
382
286
  updatedAt: string;
383
- slug: string;
384
- status: "live" | "draft" | "awaiting_review" | "archived";
385
- description: string | null;
386
- lineSupplierId: string | null;
387
287
  externalRefs: {
388
288
  [x: string]: string;
389
289
  } | null;
290
+ shipId: string;
390
291
  customerPaymentPolicy: import("hono/utils/types").JSONValue;
391
- cruiseType: "ocean" | "river" | "expedition" | "coastal";
392
- defaultShipId: string | null;
393
- nights: number;
394
292
  embarkPortFacilityId: string | null;
395
293
  disembarkPortFacilityId: string | null;
396
- shortDescription: string | null;
397
- highlights: string[] | null;
398
- inclusionsHtml: string | null;
399
- exclusionsHtml: string | null;
400
- regions: string[] | null;
401
- themes: string[] | null;
402
- heroImageUrl: string | null;
403
- mapImageUrl: string | null;
404
- lowestPriceCached: string | null;
405
- lowestPriceCurrencyCached: string | null;
406
- earliestDepartureCached: string | null;
407
- latestDepartureCached: string | null;
294
+ cruiseId: string;
295
+ departureDate: string;
296
+ returnDate: string;
297
+ direction: "upstream" | "downstream" | "round_trip" | "one_way" | null;
298
+ availabilityNote: string | null;
299
+ isCharter: boolean;
300
+ salesStatus: "open" | "on_request" | "wait_list" | "sold_out" | "closed";
301
+ lastSyncedAt: string | null;
302
+ prices?: {
303
+ id: string;
304
+ createdAt: string;
305
+ updatedAt: string;
306
+ currency: string;
307
+ notes: string | null;
308
+ availability: "on_request" | "wait_list" | "sold_out" | "available" | "limited";
309
+ externalRefs: {
310
+ [x: string]: string;
311
+ } | null;
312
+ lastSyncedAt: string | null;
313
+ sailingId: string;
314
+ cabinCategoryId: string;
315
+ occupancy: number;
316
+ fareCode: string | null;
317
+ fareCodeName: string | null;
318
+ pricePerPerson: string;
319
+ secondGuestPricePerPerson: string | null;
320
+ singleSupplementPercent: string | null;
321
+ availabilityCount: number | null;
322
+ priceCatalogId: string | null;
323
+ priceScheduleId: string | null;
324
+ bookingDeadline: string | null;
325
+ requiresRequest: boolean;
326
+ }[] | undefined;
327
+ priceComponents?: {
328
+ id: string;
329
+ createdAt: string;
330
+ updatedAt: string;
331
+ currency: string;
332
+ direction: "addition" | "inclusion" | "credit";
333
+ priceId: string;
334
+ kind: "gratuity" | "onboard_credit" | "port_charge" | "tax" | "ncf" | "airfare" | "transfer" | "insurance";
335
+ label: string | null;
336
+ amount: string;
337
+ perPerson: boolean;
338
+ }[] | undefined;
339
+ effectiveDays?: {
340
+ dayNumber: number;
341
+ title: string | null;
342
+ description: string | null;
343
+ portFacilityId: string | null;
344
+ arrivalTime: string | null;
345
+ departureTime: string | null;
346
+ isOvernight: boolean;
347
+ isSeaDay: boolean;
348
+ isExpeditionLanding: boolean;
349
+ isSkipped: boolean;
350
+ meals: {
351
+ breakfast?: boolean | undefined;
352
+ lunch?: boolean | undefined;
353
+ dinner?: boolean | undefined;
354
+ };
355
+ hasOverride: boolean;
356
+ }[] | undefined;
408
357
  };
409
358
  };
410
359
  outputFormat: "json";
@@ -412,8 +361,38 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
412
361
  };
413
362
  };
414
363
  } & {
415
- "/:key": {
416
- $delete: {
364
+ "/sailings": {
365
+ $post: {
366
+ input: {};
367
+ output: {
368
+ data: {
369
+ id: string;
370
+ createdAt: string;
371
+ updatedAt: string;
372
+ externalRefs: {
373
+ [x: string]: string;
374
+ } | null;
375
+ shipId: string;
376
+ customerPaymentPolicy: import("hono/utils/types").JSONValue;
377
+ embarkPortFacilityId: string | null;
378
+ disembarkPortFacilityId: string | null;
379
+ cruiseId: string;
380
+ departureDate: string;
381
+ returnDate: string;
382
+ direction: "upstream" | "downstream" | "round_trip" | "one_way" | null;
383
+ availabilityNote: string | null;
384
+ isCharter: boolean;
385
+ salesStatus: "open" | "on_request" | "wait_list" | "sold_out" | "closed";
386
+ lastSyncedAt: string | null;
387
+ };
388
+ };
389
+ outputFormat: "json";
390
+ status: 201;
391
+ };
392
+ };
393
+ } & {
394
+ "/sailings/:key": {
395
+ $put: {
417
396
  input: {
418
397
  param: {
419
398
  key: string;
@@ -433,7 +412,6 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
433
412
  };
434
413
  output: {
435
414
  error: string;
436
- detail: string;
437
415
  };
438
416
  outputFormat: "json";
439
417
  status: 409;
@@ -457,34 +435,23 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
457
435
  output: {
458
436
  data: {
459
437
  id: string;
460
- name: string;
461
438
  createdAt: string;
462
439
  updatedAt: string;
463
- slug: string;
464
- status: "live" | "draft" | "awaiting_review" | "archived";
465
- description: string | null;
466
- lineSupplierId: string | null;
467
440
  externalRefs: {
468
441
  [x: string]: string;
469
442
  } | null;
443
+ shipId: string;
470
444
  customerPaymentPolicy: import("hono/utils/types").JSONValue;
471
- cruiseType: "ocean" | "river" | "expedition" | "coastal";
472
- defaultShipId: string | null;
473
- nights: number;
474
445
  embarkPortFacilityId: string | null;
475
446
  disembarkPortFacilityId: string | null;
476
- shortDescription: string | null;
477
- highlights: string[] | null;
478
- inclusionsHtml: string | null;
479
- exclusionsHtml: string | null;
480
- regions: string[] | null;
481
- themes: string[] | null;
482
- heroImageUrl: string | null;
483
- mapImageUrl: string | null;
484
- lowestPriceCached: string | null;
485
- lowestPriceCurrencyCached: string | null;
486
- earliestDepartureCached: string | null;
487
- latestDepartureCached: string | null;
447
+ cruiseId: string;
448
+ departureDate: string;
449
+ returnDate: string;
450
+ direction: "upstream" | "downstream" | "round_trip" | "one_way" | null;
451
+ availabilityNote: string | null;
452
+ isCharter: boolean;
453
+ salesStatus: "open" | "on_request" | "wait_list" | "sold_out" | "closed";
454
+ lastSyncedAt: string | null;
488
455
  };
489
456
  };
490
457
  outputFormat: "json";
@@ -492,8 +459,8 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
492
459
  };
493
460
  };
494
461
  } & {
495
- "/:key/aggregates/recompute": {
496
- $post: {
462
+ "/sailings/:key/itinerary": {
463
+ $get: {
497
464
  input: {
498
465
  param: {
499
466
  key: string;
@@ -516,7 +483,7 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
516
483
  detail: string;
517
484
  };
518
485
  outputFormat: "json";
519
- status: 409;
486
+ status: 501;
520
487
  } | {
521
488
  input: {
522
489
  param: {
@@ -524,10 +491,25 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
524
491
  };
525
492
  };
526
493
  output: {
527
- error: string;
494
+ data: {
495
+ dayNumber: number;
496
+ title?: string | null | undefined;
497
+ description?: string | null | undefined;
498
+ portName?: string | null | undefined;
499
+ arrivalTime?: string | null | undefined;
500
+ departureTime?: string | null | undefined;
501
+ isOvernight?: boolean | undefined;
502
+ isSeaDay?: boolean | undefined;
503
+ isExpeditionLanding?: boolean | undefined;
504
+ meals?: {
505
+ breakfast?: boolean | undefined;
506
+ lunch?: boolean | undefined;
507
+ dinner?: boolean | undefined;
508
+ } | undefined;
509
+ }[];
528
510
  };
529
511
  outputFormat: "json";
530
- status: 404;
512
+ status: import("hono/utils/http-status").ContentfulStatusCode;
531
513
  } | {
532
514
  input: {
533
515
  param: {
@@ -536,44 +518,31 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
536
518
  };
537
519
  output: {
538
520
  data: {
539
- id: string;
540
- name: string;
541
- createdAt: string;
542
- updatedAt: string;
543
- slug: string;
544
- status: "live" | "draft" | "awaiting_review" | "archived";
521
+ dayNumber: number;
522
+ title: string | null;
545
523
  description: string | null;
546
- lineSupplierId: string | null;
547
- externalRefs: {
548
- [x: string]: string;
549
- } | null;
550
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
551
- cruiseType: "ocean" | "river" | "expedition" | "coastal";
552
- defaultShipId: string | null;
553
- nights: number;
554
- embarkPortFacilityId: string | null;
555
- disembarkPortFacilityId: string | null;
556
- shortDescription: string | null;
557
- highlights: string[] | null;
558
- inclusionsHtml: string | null;
559
- exclusionsHtml: string | null;
560
- regions: string[] | null;
561
- themes: string[] | null;
562
- heroImageUrl: string | null;
563
- mapImageUrl: string | null;
564
- lowestPriceCached: string | null;
565
- lowestPriceCurrencyCached: string | null;
566
- earliestDepartureCached: string | null;
567
- latestDepartureCached: string | null;
568
- };
524
+ portFacilityId: string | null;
525
+ arrivalTime: string | null;
526
+ departureTime: string | null;
527
+ isOvernight: boolean;
528
+ isSeaDay: boolean;
529
+ isExpeditionLanding: boolean;
530
+ isSkipped: boolean;
531
+ meals: {
532
+ breakfast?: boolean | undefined;
533
+ lunch?: boolean | undefined;
534
+ dinner?: boolean | undefined;
535
+ };
536
+ hasOverride: boolean;
537
+ }[];
569
538
  };
570
539
  outputFormat: "json";
571
540
  status: import("hono/utils/http-status").ContentfulStatusCode;
572
541
  };
573
542
  };
574
543
  } & {
575
- "/:key/sailings": {
576
- $get: {
544
+ "/sailings/:key/days/bulk": {
545
+ $put: {
577
546
  input: {
578
547
  param: {
579
548
  key: string;
@@ -593,51 +562,9 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
593
562
  };
594
563
  output: {
595
564
  error: string;
596
- detail: string;
597
- };
598
- outputFormat: "json";
599
- status: 501;
600
- } | {
601
- input: {
602
- param: {
603
- key: string;
604
- };
605
- };
606
- output: {
607
- data: {
608
- source: string;
609
- sourceProvider: string;
610
- key: string;
611
- sailing: {
612
- sourceRef: {
613
- [x: string]: import("hono/utils/types").JSONValue;
614
- connectionId?: string | undefined;
615
- externalId: string;
616
- };
617
- cruiseRef: {
618
- [x: string]: import("hono/utils/types").JSONValue;
619
- connectionId?: string | undefined;
620
- externalId: string;
621
- };
622
- shipRef: {
623
- [x: string]: import("hono/utils/types").JSONValue;
624
- connectionId?: string | undefined;
625
- externalId: string;
626
- };
627
- departureDate: string;
628
- returnDate: string;
629
- embarkPortName?: string | null | undefined;
630
- disembarkPortName?: string | null | undefined;
631
- direction?: "upstream" | "downstream" | "round_trip" | "one_way" | null | undefined;
632
- availabilityNote?: string | null | undefined;
633
- isCharter?: boolean | undefined;
634
- salesStatus?: "open" | "on_request" | "wait_list" | "sold_out" | "closed" | undefined;
635
- };
636
- }[];
637
- total: number;
638
565
  };
639
566
  outputFormat: "json";
640
- status: import("hono/utils/http-status").ContentfulStatusCode;
567
+ status: 409;
641
568
  } | {
642
569
  input: {
643
570
  param: {
@@ -647,34 +574,32 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
647
574
  output: {
648
575
  data: {
649
576
  id: string;
650
- cruiseId: string;
651
- shipId: string;
652
- departureDate: string;
653
- returnDate: string;
654
- embarkPortFacilityId: string | null;
655
- disembarkPortFacilityId: string | null;
656
- direction: "upstream" | "downstream" | "round_trip" | "one_way" | null;
657
- availabilityNote: string | null;
658
- isCharter: boolean;
659
- salesStatus: "open" | "on_request" | "wait_list" | "sold_out" | "closed";
660
- externalRefs: {
661
- [x: string]: string;
662
- } | null;
663
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
664
- lastSyncedAt: string | null;
665
577
  createdAt: string;
666
578
  updatedAt: string;
579
+ description: string | null;
580
+ meals: {
581
+ breakfast?: boolean | undefined;
582
+ lunch?: boolean | undefined;
583
+ dinner?: boolean | undefined;
584
+ } | null;
585
+ sailingId: string;
586
+ departureTime: string | null;
587
+ title: string | null;
588
+ dayNumber: number;
589
+ portFacilityId: string | null;
590
+ arrivalTime: string | null;
591
+ isOvernight: boolean | null;
592
+ isSeaDay: boolean | null;
593
+ isExpeditionLanding: boolean | null;
594
+ isSkipped: boolean;
667
595
  }[];
668
- total: number;
669
- limit: number;
670
- offset: number;
671
596
  };
672
597
  outputFormat: "json";
673
598
  status: import("hono/utils/http-status").ContentfulStatusCode;
674
599
  };
675
600
  };
676
601
  } & {
677
- "/:key/days/bulk": {
602
+ "/sailings/:key/pricing/bulk": {
678
603
  $put: {
679
604
  input: {
680
605
  param: {
@@ -709,21 +634,26 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
709
634
  id: string;
710
635
  createdAt: string;
711
636
  updatedAt: string;
712
- description: string | null;
713
- meals: {
714
- breakfast?: boolean | undefined;
715
- lunch?: boolean | undefined;
716
- dinner?: boolean | undefined;
637
+ currency: string;
638
+ notes: string | null;
639
+ availability: "on_request" | "wait_list" | "sold_out" | "available" | "limited";
640
+ externalRefs: {
641
+ [x: string]: string;
717
642
  } | null;
718
- cruiseId: string;
719
- departureTime: string | null;
720
- title: string | null;
721
- dayNumber: number;
722
- portFacilityId: string | null;
723
- arrivalTime: string | null;
724
- isOvernight: boolean;
725
- isSeaDay: boolean;
726
- isExpeditionLanding: boolean;
643
+ lastSyncedAt: string | null;
644
+ sailingId: string;
645
+ cabinCategoryId: string;
646
+ occupancy: number;
647
+ fareCode: string | null;
648
+ fareCodeName: string | null;
649
+ pricePerPerson: string;
650
+ secondGuestPricePerPerson: string | null;
651
+ singleSupplementPercent: string | null;
652
+ availabilityCount: number | null;
653
+ priceCatalogId: string | null;
654
+ priceScheduleId: string | null;
655
+ bookingDeadline: string | null;
656
+ requiresRequest: boolean;
727
657
  }[];
728
658
  };
729
659
  outputFormat: "json";
@@ -731,7 +661,7 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
731
661
  };
732
662
  };
733
663
  } & {
734
- "/:key/refresh": {
664
+ "/sailings/:key/quote": {
735
665
  $post: {
736
666
  input: {
737
667
  param: {
@@ -743,7 +673,7 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
743
673
  detail: string;
744
674
  };
745
675
  outputFormat: "json";
746
- status: 503;
676
+ status: 400;
747
677
  } | {
748
678
  input: {
749
679
  param: {
@@ -752,9 +682,10 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
752
682
  };
753
683
  output: {
754
684
  error: string;
685
+ detail: string;
755
686
  };
756
687
  outputFormat: "json";
757
- status: 400;
688
+ status: 501;
758
689
  } | {
759
690
  input: {
760
691
  param: {
@@ -763,7 +694,6 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
763
694
  };
764
695
  output: {
765
696
  error: string;
766
- detail: string;
767
697
  };
768
698
  outputFormat: "json";
769
699
  status: 404;
@@ -775,70 +705,22 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
775
705
  };
776
706
  output: {
777
707
  data: {
778
- source: string;
779
- sourceProvider: string;
780
- sourceRef: string;
781
- entityId: string;
782
- content: {
783
- cruise: {
784
- id: string;
785
- name: string;
786
- status?: string | undefined;
787
- description?: string | null | undefined;
788
- cruise_type?: string | null | undefined;
789
- hero_image_url?: string | null | undefined;
790
- highlights?: string[] | undefined;
791
- cruise_line?: string | null | undefined;
792
- duration_nights?: number | null | undefined;
793
- embarkation_port?: string | null | undefined;
794
- disembarkation_port?: string | null | undefined;
795
- };
796
- sailings: {
797
- id: string;
798
- start_date: string;
799
- end_date: string;
800
- source_ref?: string | null | undefined;
801
- duration_nights?: number | null | undefined;
802
- status?: string | null | undefined;
803
- embarkation_port?: string | null | undefined;
804
- disembarkation_port?: string | null | undefined;
805
- }[];
806
- cabin_categories: {
807
- id: string;
808
- name: string;
809
- inclusions: string[];
810
- code?: string | null | undefined;
811
- description?: string | null | undefined;
812
- type?: string | null | undefined;
813
- capacity_min?: number | null | undefined;
814
- capacity_max?: number | null | undefined;
815
- }[];
816
- itinerary_stops: {
817
- day_number: number;
818
- port_name: string;
819
- is_at_sea: boolean;
820
- date?: string | null | undefined;
821
- arrival_time?: string | null | undefined;
822
- departure_time?: string | null | undefined;
823
- description?: string | null | undefined;
824
- }[];
825
- policies: {
826
- kind: "supplier_notes" | "payment" | "cancellation" | "requirements";
827
- body: string;
828
- rules?: import("hono/utils/types").JSONValue | undefined;
829
- }[];
830
- ship?: {
831
- name: string;
832
- id?: string | null | undefined;
833
- description?: string | null | undefined;
834
- capacity?: number | null | undefined;
835
- decks?: number | null | undefined;
836
- year_built?: number | null | undefined;
837
- } | null | undefined;
838
- };
839
- contentSource: "sourced-cache" | "sourced-fresh" | "synthesized";
840
- servedStale: boolean;
841
- refreshedAt: string;
708
+ fareCode: string | null;
709
+ fareCodeName: string | null;
710
+ currency: string;
711
+ occupancy: number;
712
+ guestCount: number;
713
+ basePerPerson: string;
714
+ components: {
715
+ kind: import("./schema-pricing.js").CruisePriceComponent["kind"];
716
+ label: string | null;
717
+ amount: string;
718
+ currency: string;
719
+ direction: import("./schema-pricing.js").CruisePriceComponent["direction"];
720
+ perPerson: boolean;
721
+ }[];
722
+ totalPerPerson: string;
723
+ totalForCabin: string;
842
724
  };
843
725
  };
844
726
  outputFormat: "json";
@@ -846,7 +728,7 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
846
728
  };
847
729
  };
848
730
  } & {
849
- "/:key/detach": {
731
+ "/sailings/:key/bookings": {
850
732
  $post: {
851
733
  input: {
852
734
  param: {
@@ -858,7 +740,7 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
858
740
  detail: string;
859
741
  };
860
742
  outputFormat: "json";
861
- status: 501;
743
+ status: 400;
862
744
  } | {
863
745
  input: {
864
746
  param: {
@@ -867,9 +749,10 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
867
749
  };
868
750
  output: {
869
751
  error: string;
752
+ detail: string;
870
753
  };
871
754
  outputFormat: "json";
872
- status: 400;
755
+ status: 501;
873
756
  } | {
874
757
  input: {
875
758
  param: {
@@ -878,35 +761,62 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
878
761
  };
879
762
  output: {
880
763
  data: {
881
- id: string;
882
- name: string;
883
- createdAt: string;
884
- updatedAt: string;
885
- slug: string;
886
- status: "live" | "draft" | "awaiting_review" | "archived";
887
- description: string | null;
888
- lineSupplierId: string | null;
889
- externalRefs: {
890
- [x: string]: string;
891
- } | null;
892
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
893
- cruiseType: "ocean" | "river" | "expedition" | "coastal";
894
- defaultShipId: string | null;
895
- nights: number;
896
- embarkPortFacilityId: string | null;
897
- disembarkPortFacilityId: string | null;
898
- shortDescription: string | null;
899
- highlights: string[] | null;
900
- inclusionsHtml: string | null;
901
- exclusionsHtml: string | null;
902
- regions: string[] | null;
903
- themes: string[] | null;
904
- heroImageUrl: string | null;
905
- mapImageUrl: string | null;
906
- lowestPriceCached: string | null;
907
- lowestPriceCurrencyCached: string | null;
908
- earliestDepartureCached: string | null;
909
- latestDepartureCached: string | null;
764
+ bookingId: string;
765
+ bookingNumber: string;
766
+ cruiseDetails: {
767
+ source: "external" | "local";
768
+ mode: "reserve" | "inquiry";
769
+ createdAt: string;
770
+ updatedAt: string;
771
+ notes: string | null;
772
+ bookingId: string;
773
+ sailingId: string | null;
774
+ cabinCategoryId: string | null;
775
+ occupancy: number;
776
+ fareCode: string | null;
777
+ sourceProvider: string | null;
778
+ sourceRef: {
779
+ [x: string]: import("hono/utils/types").JSONValue;
780
+ connectionId?: string | undefined;
781
+ externalId: string;
782
+ } | null;
783
+ airArrangement: "none" | "cruise_line" | "independent" | null;
784
+ cabinId: string | null;
785
+ sailingDisplayName: string | null;
786
+ cabinDisplayName: string | null;
787
+ quotedPricePerPerson: string;
788
+ quotedTotalForCabin: string;
789
+ quotedCurrency: string;
790
+ quotedComponentsJson: {
791
+ kind: import("./schema-pricing.js").CruisePriceComponent["kind"];
792
+ label: string | null;
793
+ amount: string;
794
+ currency: string;
795
+ direction: import("./schema-pricing.js").CruisePriceComponent["direction"];
796
+ perPerson: boolean;
797
+ }[] | null;
798
+ connectorBookingRef: string | null;
799
+ connectorStatus: string | null;
800
+ linkedFlightBookingId: string | null;
801
+ };
802
+ quote: {
803
+ fareCode: string | null;
804
+ fareCodeName: string | null;
805
+ currency: string;
806
+ occupancy: number;
807
+ guestCount: number;
808
+ basePerPerson: string;
809
+ components: {
810
+ kind: import("./schema-pricing.js").CruisePriceComponent["kind"];
811
+ label: string | null;
812
+ amount: string;
813
+ currency: string;
814
+ direction: import("./schema-pricing.js").CruisePriceComponent["direction"];
815
+ perPerson: boolean;
816
+ }[];
817
+ totalPerPerson: string;
818
+ totalForCabin: string;
819
+ };
910
820
  };
911
821
  };
912
822
  outputFormat: "json";
@@ -914,8 +824,8 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
914
824
  };
915
825
  };
916
826
  } & {
917
- "/:key/enrichment": {
918
- $get: {
827
+ "/sailings/:key/party-bookings": {
828
+ $post: {
919
829
  input: {
920
830
  param: {
921
831
  key: string;
@@ -947,126 +857,170 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
947
857
  };
948
858
  output: {
949
859
  data: {
950
- id: string;
951
- name: string;
952
- createdAt: string;
953
- updatedAt: string;
954
- description: string | null;
955
- cruiseId: string;
956
- kind: "other" | "naturalist" | "historian" | "photographer" | "lecturer" | "expert";
957
- title: string | null;
958
- sortOrder: number;
959
- bioImageUrl: string | null;
960
- }[];
860
+ groupId: string;
861
+ primaryBookingId: string | null;
862
+ groupDetails: {
863
+ source: "external" | "local";
864
+ createdAt: string;
865
+ updatedAt: string;
866
+ notes: string | null;
867
+ cabinCount: number;
868
+ sailingId: string | null;
869
+ sourceProvider: string | null;
870
+ sourceRef: {
871
+ [x: string]: import("hono/utils/types").JSONValue;
872
+ connectionId?: string | undefined;
873
+ externalId: string;
874
+ } | null;
875
+ sailingDisplayName: string | null;
876
+ quotedCurrency: string;
877
+ connectorBookingRef: string | null;
878
+ bookingGroupId: string;
879
+ totalQuotedAmount: string;
880
+ };
881
+ cabins: {
882
+ bookingId: string;
883
+ bookingNumber: string;
884
+ cruiseDetails: {
885
+ source: "external" | "local";
886
+ mode: "reserve" | "inquiry";
887
+ createdAt: string;
888
+ updatedAt: string;
889
+ notes: string | null;
890
+ bookingId: string;
891
+ sailingId: string | null;
892
+ cabinCategoryId: string | null;
893
+ occupancy: number;
894
+ fareCode: string | null;
895
+ sourceProvider: string | null;
896
+ sourceRef: {
897
+ [x: string]: import("hono/utils/types").JSONValue;
898
+ connectionId?: string | undefined;
899
+ externalId: string;
900
+ } | null;
901
+ airArrangement: "none" | "cruise_line" | "independent" | null;
902
+ cabinId: string | null;
903
+ sailingDisplayName: string | null;
904
+ cabinDisplayName: string | null;
905
+ quotedPricePerPerson: string;
906
+ quotedTotalForCabin: string;
907
+ quotedCurrency: string;
908
+ quotedComponentsJson: {
909
+ kind: import("./schema-pricing.js").CruisePriceComponent["kind"];
910
+ label: string | null;
911
+ amount: string;
912
+ currency: string;
913
+ direction: import("./schema-pricing.js").CruisePriceComponent["direction"];
914
+ perPerson: boolean;
915
+ }[] | null;
916
+ connectorBookingRef: string | null;
917
+ connectorStatus: string | null;
918
+ linkedFlightBookingId: string | null;
919
+ };
920
+ quote: {
921
+ fareCode: string | null;
922
+ fareCodeName: string | null;
923
+ currency: string;
924
+ occupancy: number;
925
+ guestCount: number;
926
+ basePerPerson: string;
927
+ components: {
928
+ kind: import("./schema-pricing.js").CruisePriceComponent["kind"];
929
+ label: string | null;
930
+ amount: string;
931
+ currency: string;
932
+ direction: import("./schema-pricing.js").CruisePriceComponent["direction"];
933
+ perPerson: boolean;
934
+ }[];
935
+ totalPerPerson: string;
936
+ totalForCabin: string;
937
+ };
938
+ }[];
939
+ };
961
940
  };
962
941
  outputFormat: "json";
963
- status: import("hono/utils/http-status").ContentfulStatusCode;
942
+ status: 201;
964
943
  };
965
944
  };
966
945
  } & {
967
- "/:key/enrichment": {
968
- $post: {
969
- input: {
970
- param: {
971
- key: string;
972
- };
973
- };
974
- output: {
975
- error: string;
976
- detail: string;
977
- };
978
- outputFormat: "json";
979
- status: 400;
980
- } | {
981
- input: {
982
- param: {
983
- key: string;
984
- };
985
- };
986
- output: {
987
- error: string;
988
- };
989
- outputFormat: "json";
990
- status: 409;
991
- } | {
992
- input: {
993
- param: {
994
- key: string;
995
- };
996
- };
946
+ "/prices": {
947
+ $get: {
948
+ input: {};
997
949
  output: {
998
950
  data: {
999
951
  id: string;
1000
- name: string;
952
+ sailingId: string;
953
+ cabinCategoryId: string;
954
+ occupancy: number;
955
+ fareCode: string | null;
956
+ fareCodeName: string | null;
957
+ currency: string;
958
+ pricePerPerson: string;
959
+ secondGuestPricePerPerson: string | null;
960
+ singleSupplementPercent: string | null;
961
+ availability: "on_request" | "wait_list" | "sold_out" | "available" | "limited";
962
+ availabilityCount: number | null;
963
+ priceCatalogId: string | null;
964
+ priceScheduleId: string | null;
965
+ bookingDeadline: string | null;
966
+ requiresRequest: boolean;
967
+ notes: string | null;
968
+ externalRefs: {
969
+ [x: string]: string;
970
+ } | null;
971
+ lastSyncedAt: string | null;
1001
972
  createdAt: string;
1002
973
  updatedAt: string;
1003
- description: string | null;
1004
- cruiseId: string;
1005
- kind: "other" | "naturalist" | "historian" | "photographer" | "lecturer" | "expert";
1006
- title: string | null;
1007
- sortOrder: number;
1008
- bioImageUrl: string | null;
1009
- };
974
+ }[];
975
+ total: number;
976
+ limit: number;
977
+ offset: number;
1010
978
  };
1011
979
  outputFormat: "json";
1012
- status: 201;
980
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1013
981
  };
1014
982
  };
1015
983
  } & {
1016
- "/:key/enrichment/bulk": {
1017
- $put: {
1018
- input: {
1019
- param: {
1020
- key: string;
1021
- };
1022
- };
1023
- output: {
1024
- error: string;
1025
- detail: string;
1026
- };
1027
- outputFormat: "json";
1028
- status: 400;
1029
- } | {
1030
- input: {
1031
- param: {
1032
- key: string;
1033
- };
1034
- };
1035
- output: {
1036
- error: string;
1037
- };
1038
- outputFormat: "json";
1039
- status: 409;
1040
- } | {
1041
- input: {
1042
- param: {
1043
- key: string;
1044
- };
1045
- };
984
+ "/prices": {
985
+ $post: {
986
+ input: {};
1046
987
  output: {
1047
988
  data: {
1048
989
  id: string;
1049
- name: string;
1050
990
  createdAt: string;
1051
991
  updatedAt: string;
1052
- description: string | null;
1053
- cruiseId: string;
1054
- kind: "other" | "naturalist" | "historian" | "photographer" | "lecturer" | "expert";
1055
- title: string | null;
1056
- sortOrder: number;
1057
- bioImageUrl: string | null;
1058
- }[];
992
+ currency: string;
993
+ notes: string | null;
994
+ availability: "on_request" | "wait_list" | "sold_out" | "available" | "limited";
995
+ externalRefs: {
996
+ [x: string]: string;
997
+ } | null;
998
+ lastSyncedAt: string | null;
999
+ sailingId: string;
1000
+ cabinCategoryId: string;
1001
+ occupancy: number;
1002
+ fareCode: string | null;
1003
+ fareCodeName: string | null;
1004
+ pricePerPerson: string;
1005
+ secondGuestPricePerPerson: string | null;
1006
+ singleSupplementPercent: string | null;
1007
+ availabilityCount: number | null;
1008
+ priceCatalogId: string | null;
1009
+ priceScheduleId: string | null;
1010
+ bookingDeadline: string | null;
1011
+ requiresRequest: boolean;
1012
+ };
1059
1013
  };
1060
1014
  outputFormat: "json";
1061
- status: import("hono/utils/http-status").ContentfulStatusCode;
1015
+ status: 201;
1062
1016
  };
1063
1017
  };
1064
1018
  } & {
1065
- "/enrichment/:programId": {
1019
+ "/prices/:priceId": {
1066
1020
  $put: {
1067
1021
  input: {
1068
1022
  param: {
1069
- programId: string;
1023
+ priceId: string;
1070
1024
  };
1071
1025
  };
1072
1026
  output: {
@@ -1077,21 +1031,34 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1077
1031
  } | {
1078
1032
  input: {
1079
1033
  param: {
1080
- programId: string;
1034
+ priceId: string;
1081
1035
  };
1082
1036
  };
1083
1037
  output: {
1084
1038
  data: {
1085
1039
  id: string;
1086
- name: string;
1087
1040
  createdAt: string;
1088
1041
  updatedAt: string;
1089
- description: string | null;
1090
- cruiseId: string;
1091
- kind: "other" | "naturalist" | "historian" | "photographer" | "lecturer" | "expert";
1092
- title: string | null;
1093
- sortOrder: number;
1094
- bioImageUrl: string | null;
1042
+ currency: string;
1043
+ notes: string | null;
1044
+ availability: "on_request" | "wait_list" | "sold_out" | "available" | "limited";
1045
+ externalRefs: {
1046
+ [x: string]: string;
1047
+ } | null;
1048
+ lastSyncedAt: string | null;
1049
+ sailingId: string;
1050
+ cabinCategoryId: string;
1051
+ occupancy: number;
1052
+ fareCode: string | null;
1053
+ fareCodeName: string | null;
1054
+ pricePerPerson: string;
1055
+ secondGuestPricePerPerson: string | null;
1056
+ singleSupplementPercent: string | null;
1057
+ availabilityCount: number | null;
1058
+ priceCatalogId: string | null;
1059
+ priceScheduleId: string | null;
1060
+ bookingDeadline: string | null;
1061
+ requiresRequest: boolean;
1095
1062
  };
1096
1063
  };
1097
1064
  outputFormat: "json";
@@ -1099,51 +1066,35 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1099
1066
  };
1100
1067
  };
1101
1068
  } & {
1102
- "/enrichment/:programId": {
1103
- $delete: {
1104
- input: {
1105
- param: {
1106
- programId: string;
1107
- };
1108
- };
1109
- output: null;
1110
- outputFormat: "body";
1111
- status: 204;
1112
- } | {
1113
- input: {
1114
- param: {
1115
- programId: string;
1116
- };
1117
- };
1118
- output: {
1119
- error: string;
1120
- };
1121
- outputFormat: "json";
1122
- status: 404;
1123
- };
1124
- };
1125
- } & {
1126
- "/sailings": {
1069
+ "/ships": {
1127
1070
  $get: {
1128
1071
  input: {};
1129
1072
  output: {
1130
1073
  data: {
1131
1074
  id: string;
1132
- cruiseId: string;
1133
- shipId: string;
1134
- departureDate: string;
1135
- returnDate: string;
1136
- embarkPortFacilityId: string | null;
1137
- disembarkPortFacilityId: string | null;
1138
- direction: "upstream" | "downstream" | "round_trip" | "one_way" | null;
1139
- availabilityNote: string | null;
1140
- isCharter: boolean;
1141
- salesStatus: "open" | "on_request" | "wait_list" | "sold_out" | "closed";
1075
+ lineSupplierId: string | null;
1076
+ name: string;
1077
+ slug: string;
1078
+ shipType: "ocean" | "river" | "expedition" | "coastal" | "yacht" | "sailing";
1079
+ capacityGuests: number | null;
1080
+ capacityCrew: number | null;
1081
+ cabinCount: number | null;
1082
+ deckCount: number | null;
1083
+ lengthMeters: string | null;
1084
+ cruisingSpeedKnots: string | null;
1085
+ yearBuilt: number | null;
1086
+ yearRefurbished: number | null;
1087
+ imo: string | null;
1088
+ description: string | null;
1089
+ deckPlanUrl: string | null;
1090
+ gallery: string[] | null;
1091
+ amenities: {
1092
+ [x: string]: import("hono/utils/types").JSONValue;
1093
+ } | null;
1142
1094
  externalRefs: {
1143
1095
  [x: string]: string;
1144
1096
  } | null;
1145
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
1146
- lastSyncedAt: string | null;
1097
+ isActive: boolean;
1147
1098
  createdAt: string;
1148
1099
  updatedAt: string;
1149
1100
  }[];
@@ -1156,7 +1107,45 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1156
1107
  };
1157
1108
  };
1158
1109
  } & {
1159
- "/sailings/:key": {
1110
+ "/ships": {
1111
+ $post: {
1112
+ input: {};
1113
+ output: {
1114
+ data: {
1115
+ id: string;
1116
+ name: string;
1117
+ createdAt: string;
1118
+ updatedAt: string;
1119
+ slug: string;
1120
+ description: string | null;
1121
+ lineSupplierId: string | null;
1122
+ shipType: "ocean" | "river" | "expedition" | "coastal" | "yacht" | "sailing";
1123
+ capacityGuests: number | null;
1124
+ capacityCrew: number | null;
1125
+ cabinCount: number | null;
1126
+ deckCount: number | null;
1127
+ lengthMeters: string | null;
1128
+ cruisingSpeedKnots: string | null;
1129
+ yearBuilt: number | null;
1130
+ yearRefurbished: number | null;
1131
+ imo: string | null;
1132
+ deckPlanUrl: string | null;
1133
+ gallery: string[] | null;
1134
+ amenities: {
1135
+ [x: string]: import("hono/utils/types").JSONValue;
1136
+ } | null;
1137
+ externalRefs: {
1138
+ [x: string]: string;
1139
+ } | null;
1140
+ isActive: boolean;
1141
+ };
1142
+ };
1143
+ outputFormat: "json";
1144
+ status: 201;
1145
+ };
1146
+ };
1147
+ } & {
1148
+ "/ships/:key": {
1160
1149
  $get: {
1161
1150
  input: {
1162
1151
  param: {
@@ -1200,7 +1189,62 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1200
1189
  };
1201
1190
  output: {
1202
1191
  data: {
1203
- [x: string]: import("hono/utils/types").JSONValue;
1192
+ source: string;
1193
+ sourceProvider: string;
1194
+ sourceRef: {
1195
+ [x: string]: import("hono/utils/types").JSONValue;
1196
+ connectionId?: string | undefined;
1197
+ externalId: string;
1198
+ };
1199
+ ship: {
1200
+ sourceRef: {
1201
+ [x: string]: import("hono/utils/types").JSONValue;
1202
+ connectionId?: string | undefined;
1203
+ externalId: string;
1204
+ };
1205
+ name: string;
1206
+ slug: string;
1207
+ shipType: "ocean" | "river" | "expedition" | "yacht" | "sailing" | "coastal";
1208
+ capacityGuests?: number | null | undefined;
1209
+ capacityCrew?: number | null | undefined;
1210
+ cabinCount?: number | null | undefined;
1211
+ deckCount?: number | null | undefined;
1212
+ lengthMeters?: string | null | undefined;
1213
+ cruisingSpeedKnots?: string | null | undefined;
1214
+ yearBuilt?: number | null | undefined;
1215
+ yearRefurbished?: number | null | undefined;
1216
+ imo?: string | null | undefined;
1217
+ description?: string | null | undefined;
1218
+ deckPlanUrl?: string | null | undefined;
1219
+ gallery?: string[] | undefined;
1220
+ amenities?: {
1221
+ [x: string]: import("hono/utils/types").JSONValue;
1222
+ } | undefined;
1223
+ decks?: {
1224
+ name: string;
1225
+ level?: number | null | undefined;
1226
+ planImageUrl?: string | null | undefined;
1227
+ }[] | undefined;
1228
+ categories?: {
1229
+ sourceRef: {
1230
+ [x: string]: import("hono/utils/types").JSONValue;
1231
+ connectionId?: string | undefined;
1232
+ externalId: string;
1233
+ };
1234
+ code: string;
1235
+ name: string;
1236
+ roomType: "inside" | "oceanview" | "balcony" | "suite" | "penthouse" | "single";
1237
+ description?: string | null | undefined;
1238
+ minOccupancy: number;
1239
+ maxOccupancy: number;
1240
+ squareFeet?: string | null | undefined;
1241
+ wheelchairAccessible?: boolean | undefined;
1242
+ amenities?: string[] | undefined;
1243
+ images?: string[] | undefined;
1244
+ floorplanImages?: string[] | undefined;
1245
+ gradeCodes?: string[] | undefined;
1246
+ }[] | undefined;
1247
+ };
1204
1248
  };
1205
1249
  };
1206
1250
  outputFormat: "json";
@@ -1214,78 +1258,31 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1214
1258
  output: {
1215
1259
  data: {
1216
1260
  id: string;
1261
+ name: string;
1217
1262
  createdAt: string;
1218
1263
  updatedAt: string;
1264
+ slug: string;
1265
+ description: string | null;
1266
+ lineSupplierId: string | null;
1267
+ shipType: "ocean" | "river" | "expedition" | "coastal" | "yacht" | "sailing";
1268
+ capacityGuests: number | null;
1269
+ capacityCrew: number | null;
1270
+ cabinCount: number | null;
1271
+ deckCount: number | null;
1272
+ lengthMeters: string | null;
1273
+ cruisingSpeedKnots: string | null;
1274
+ yearBuilt: number | null;
1275
+ yearRefurbished: number | null;
1276
+ imo: string | null;
1277
+ deckPlanUrl: string | null;
1278
+ gallery: string[] | null;
1279
+ amenities: {
1280
+ [x: string]: import("hono/utils/types").JSONValue;
1281
+ } | null;
1219
1282
  externalRefs: {
1220
1283
  [x: string]: string;
1221
1284
  } | null;
1222
- shipId: string;
1223
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
1224
- embarkPortFacilityId: string | null;
1225
- disembarkPortFacilityId: string | null;
1226
- cruiseId: string;
1227
- departureDate: string;
1228
- returnDate: string;
1229
- direction: "upstream" | "downstream" | "round_trip" | "one_way" | null;
1230
- availabilityNote: string | null;
1231
- isCharter: boolean;
1232
- salesStatus: "open" | "on_request" | "wait_list" | "sold_out" | "closed";
1233
- lastSyncedAt: string | null;
1234
- prices?: {
1235
- id: string;
1236
- createdAt: string;
1237
- updatedAt: string;
1238
- currency: string;
1239
- notes: string | null;
1240
- availability: "on_request" | "wait_list" | "sold_out" | "available" | "limited";
1241
- externalRefs: {
1242
- [x: string]: string;
1243
- } | null;
1244
- lastSyncedAt: string | null;
1245
- sailingId: string;
1246
- cabinCategoryId: string;
1247
- occupancy: number;
1248
- fareCode: string | null;
1249
- fareCodeName: string | null;
1250
- pricePerPerson: string;
1251
- secondGuestPricePerPerson: string | null;
1252
- singleSupplementPercent: string | null;
1253
- availabilityCount: number | null;
1254
- priceCatalogId: string | null;
1255
- priceScheduleId: string | null;
1256
- bookingDeadline: string | null;
1257
- requiresRequest: boolean;
1258
- }[] | undefined;
1259
- priceComponents?: {
1260
- id: string;
1261
- createdAt: string;
1262
- updatedAt: string;
1263
- currency: string;
1264
- direction: "addition" | "inclusion" | "credit";
1265
- priceId: string;
1266
- kind: "gratuity" | "onboard_credit" | "port_charge" | "tax" | "ncf" | "airfare" | "transfer" | "insurance";
1267
- label: string | null;
1268
- amount: string;
1269
- perPerson: boolean;
1270
- }[] | undefined;
1271
- effectiveDays?: {
1272
- dayNumber: number;
1273
- title: string | null;
1274
- description: string | null;
1275
- portFacilityId: string | null;
1276
- arrivalTime: string | null;
1277
- departureTime: string | null;
1278
- isOvernight: boolean;
1279
- isSeaDay: boolean;
1280
- isExpeditionLanding: boolean;
1281
- isSkipped: boolean;
1282
- meals: {
1283
- breakfast?: boolean | undefined;
1284
- lunch?: boolean | undefined;
1285
- dinner?: boolean | undefined;
1286
- };
1287
- hasOverride: boolean;
1288
- }[] | undefined;
1285
+ isActive: boolean;
1289
1286
  };
1290
1287
  };
1291
1288
  outputFormat: "json";
@@ -1293,43 +1290,13 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1293
1290
  };
1294
1291
  };
1295
1292
  } & {
1296
- "/sailings": {
1297
- $post: {
1298
- input: {};
1299
- output: {
1300
- data: {
1301
- id: string;
1302
- createdAt: string;
1303
- updatedAt: string;
1304
- externalRefs: {
1305
- [x: string]: string;
1306
- } | null;
1307
- shipId: string;
1308
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
1309
- embarkPortFacilityId: string | null;
1310
- disembarkPortFacilityId: string | null;
1311
- cruiseId: string;
1312
- departureDate: string;
1313
- returnDate: string;
1314
- direction: "upstream" | "downstream" | "round_trip" | "one_way" | null;
1315
- availabilityNote: string | null;
1316
- isCharter: boolean;
1317
- salesStatus: "open" | "on_request" | "wait_list" | "sold_out" | "closed";
1318
- lastSyncedAt: string | null;
1319
- };
1320
- };
1321
- outputFormat: "json";
1322
- status: 201;
1323
- };
1324
- };
1325
- } & {
1326
- "/sailings/:key": {
1327
- $put: {
1328
- input: {
1329
- param: {
1330
- key: string;
1331
- };
1332
- };
1293
+ "/ships/:key": {
1294
+ $put: {
1295
+ input: {
1296
+ param: {
1297
+ key: string;
1298
+ };
1299
+ };
1333
1300
  output: {
1334
1301
  error: string;
1335
1302
  detail: string;
@@ -1367,23 +1334,31 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1367
1334
  output: {
1368
1335
  data: {
1369
1336
  id: string;
1337
+ name: string;
1370
1338
  createdAt: string;
1371
1339
  updatedAt: string;
1340
+ slug: string;
1341
+ description: string | null;
1342
+ lineSupplierId: string | null;
1343
+ shipType: "ocean" | "river" | "expedition" | "coastal" | "yacht" | "sailing";
1344
+ capacityGuests: number | null;
1345
+ capacityCrew: number | null;
1346
+ cabinCount: number | null;
1347
+ deckCount: number | null;
1348
+ lengthMeters: string | null;
1349
+ cruisingSpeedKnots: string | null;
1350
+ yearBuilt: number | null;
1351
+ yearRefurbished: number | null;
1352
+ imo: string | null;
1353
+ deckPlanUrl: string | null;
1354
+ gallery: string[] | null;
1355
+ amenities: {
1356
+ [x: string]: import("hono/utils/types").JSONValue;
1357
+ } | null;
1372
1358
  externalRefs: {
1373
1359
  [x: string]: string;
1374
1360
  } | null;
1375
- shipId: string;
1376
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
1377
- embarkPortFacilityId: string | null;
1378
- disembarkPortFacilityId: string | null;
1379
- cruiseId: string;
1380
- departureDate: string;
1381
- returnDate: string;
1382
- direction: "upstream" | "downstream" | "round_trip" | "one_way" | null;
1383
- availabilityNote: string | null;
1384
- isCharter: boolean;
1385
- salesStatus: "open" | "on_request" | "wait_list" | "sold_out" | "closed";
1386
- lastSyncedAt: string | null;
1361
+ isActive: boolean;
1387
1362
  };
1388
1363
  };
1389
1364
  outputFormat: "json";
@@ -1391,7 +1366,7 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1391
1366
  };
1392
1367
  };
1393
1368
  } & {
1394
- "/sailings/:key/itinerary": {
1369
+ "/ships/:key/decks": {
1395
1370
  $get: {
1396
1371
  input: {
1397
1372
  param: {
@@ -1424,48 +1399,9 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1424
1399
  };
1425
1400
  output: {
1426
1401
  data: {
1427
- dayNumber: number;
1428
- title?: string | null | undefined;
1429
- description?: string | null | undefined;
1430
- portName?: string | null | undefined;
1431
- arrivalTime?: string | null | undefined;
1432
- departureTime?: string | null | undefined;
1433
- isOvernight?: boolean | undefined;
1434
- isSeaDay?: boolean | undefined;
1435
- isExpeditionLanding?: boolean | undefined;
1436
- meals?: {
1437
- breakfast?: boolean | undefined;
1438
- lunch?: boolean | undefined;
1439
- dinner?: boolean | undefined;
1440
- } | undefined;
1441
- }[];
1442
- };
1443
- outputFormat: "json";
1444
- status: import("hono/utils/http-status").ContentfulStatusCode;
1445
- } | {
1446
- input: {
1447
- param: {
1448
- key: string;
1449
- };
1450
- };
1451
- output: {
1452
- data: {
1453
- dayNumber: number;
1454
- title: string | null;
1455
- description: string | null;
1456
- portFacilityId: string | null;
1457
- arrivalTime: string | null;
1458
- departureTime: string | null;
1459
- isOvernight: boolean;
1460
- isSeaDay: boolean;
1461
- isExpeditionLanding: boolean;
1462
- isSkipped: boolean;
1463
- meals: {
1464
- breakfast?: boolean | undefined;
1465
- lunch?: boolean | undefined;
1466
- dinner?: boolean | undefined;
1467
- };
1468
- hasOverride: boolean;
1402
+ name: string;
1403
+ level?: number | null | undefined;
1404
+ planImageUrl?: string | null | undefined;
1469
1405
  }[];
1470
1406
  };
1471
1407
  outputFormat: "json";
@@ -1473,8 +1409,8 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1473
1409
  };
1474
1410
  };
1475
1411
  } & {
1476
- "/sailings/:key/days/bulk": {
1477
- $put: {
1412
+ "/ships/:key/decks": {
1413
+ $post: {
1478
1414
  input: {
1479
1415
  param: {
1480
1416
  key: string;
@@ -1506,95 +1442,55 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1506
1442
  output: {
1507
1443
  data: {
1508
1444
  id: string;
1445
+ name: string;
1509
1446
  createdAt: string;
1510
1447
  updatedAt: string;
1511
- description: string | null;
1512
- meals: {
1513
- breakfast?: boolean | undefined;
1514
- lunch?: boolean | undefined;
1515
- dinner?: boolean | undefined;
1516
- } | null;
1517
- sailingId: string;
1518
- departureTime: string | null;
1519
- title: string | null;
1520
- dayNumber: number;
1521
- portFacilityId: string | null;
1522
- arrivalTime: string | null;
1523
- isOvernight: boolean | null;
1524
- isSeaDay: boolean | null;
1525
- isExpeditionLanding: boolean | null;
1526
- isSkipped: boolean;
1527
- }[];
1448
+ shipId: string;
1449
+ level: number | null;
1450
+ planImageUrl: string | null;
1451
+ };
1528
1452
  };
1529
1453
  outputFormat: "json";
1530
- status: import("hono/utils/http-status").ContentfulStatusCode;
1454
+ status: 201;
1531
1455
  };
1532
1456
  };
1533
1457
  } & {
1534
- "/sailings/:key/pricing/bulk": {
1458
+ "/decks/:deckId": {
1535
1459
  $put: {
1536
1460
  input: {
1537
1461
  param: {
1538
- key: string;
1539
- };
1540
- };
1541
- output: {
1542
- error: string;
1543
- detail: string;
1544
- };
1545
- outputFormat: "json";
1546
- status: 400;
1547
- } | {
1548
- input: {
1549
- param: {
1550
- key: string;
1462
+ deckId: string;
1551
1463
  };
1552
1464
  };
1553
1465
  output: {
1554
1466
  error: string;
1555
1467
  };
1556
1468
  outputFormat: "json";
1557
- status: 409;
1469
+ status: 404;
1558
1470
  } | {
1559
1471
  input: {
1560
1472
  param: {
1561
- key: string;
1473
+ deckId: string;
1562
1474
  };
1563
1475
  };
1564
1476
  output: {
1565
1477
  data: {
1566
1478
  id: string;
1479
+ name: string;
1567
1480
  createdAt: string;
1568
1481
  updatedAt: string;
1569
- currency: string;
1570
- notes: string | null;
1571
- availability: "on_request" | "wait_list" | "sold_out" | "available" | "limited";
1572
- externalRefs: {
1573
- [x: string]: string;
1574
- } | null;
1575
- lastSyncedAt: string | null;
1576
- sailingId: string;
1577
- cabinCategoryId: string;
1578
- occupancy: number;
1579
- fareCode: string | null;
1580
- fareCodeName: string | null;
1581
- pricePerPerson: string;
1582
- secondGuestPricePerPerson: string | null;
1583
- singleSupplementPercent: string | null;
1584
- availabilityCount: number | null;
1585
- priceCatalogId: string | null;
1586
- priceScheduleId: string | null;
1587
- bookingDeadline: string | null;
1588
- requiresRequest: boolean;
1589
- }[];
1482
+ shipId: string;
1483
+ level: number | null;
1484
+ planImageUrl: string | null;
1485
+ };
1590
1486
  };
1591
1487
  outputFormat: "json";
1592
1488
  status: import("hono/utils/http-status").ContentfulStatusCode;
1593
1489
  };
1594
1490
  };
1595
1491
  } & {
1596
- "/sailings/:key/quote": {
1597
- $post: {
1492
+ "/ships/:key/categories": {
1493
+ $get: {
1598
1494
  input: {
1599
1495
  param: {
1600
1496
  key: string;
@@ -1625,10 +1521,28 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1625
1521
  };
1626
1522
  };
1627
1523
  output: {
1628
- error: string;
1524
+ data: {
1525
+ sourceRef: {
1526
+ [x: string]: import("hono/utils/types").JSONValue;
1527
+ connectionId?: string | undefined;
1528
+ externalId: string;
1529
+ };
1530
+ code: string;
1531
+ name: string;
1532
+ roomType: "inside" | "oceanview" | "balcony" | "suite" | "penthouse" | "single";
1533
+ description?: string | null | undefined;
1534
+ minOccupancy: number;
1535
+ maxOccupancy: number;
1536
+ squareFeet?: string | null | undefined;
1537
+ wheelchairAccessible?: boolean | undefined;
1538
+ amenities?: string[] | undefined;
1539
+ images?: string[] | undefined;
1540
+ floorplanImages?: string[] | undefined;
1541
+ gradeCodes?: string[] | undefined;
1542
+ }[];
1629
1543
  };
1630
1544
  outputFormat: "json";
1631
- status: 404;
1545
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1632
1546
  } | {
1633
1547
  input: {
1634
1548
  param: {
@@ -1637,31 +1551,35 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1637
1551
  };
1638
1552
  output: {
1639
1553
  data: {
1640
- fareCode: string | null;
1641
- fareCodeName: string | null;
1642
- currency: string;
1643
- occupancy: number;
1644
- guestCount: number;
1645
- basePerPerson: string;
1646
- components: {
1647
- kind: import("./schema-pricing.js").CruisePriceComponent["kind"];
1648
- label: string | null;
1649
- amount: string;
1650
- currency: string;
1651
- direction: import("./schema-pricing.js").CruisePriceComponent["direction"];
1652
- perPerson: boolean;
1653
- }[];
1654
- totalPerPerson: string;
1655
- totalForCabin: string;
1656
- };
1554
+ id: string;
1555
+ name: string;
1556
+ createdAt: string;
1557
+ updatedAt: string;
1558
+ description: string | null;
1559
+ code: string;
1560
+ amenities: string[] | null;
1561
+ externalRefs: {
1562
+ [x: string]: string;
1563
+ } | null;
1564
+ shipId: string;
1565
+ roomType: "single" | "inside" | "oceanview" | "balcony" | "suite" | "penthouse";
1566
+ minOccupancy: number;
1567
+ maxOccupancy: number;
1568
+ squareFeet: string | null;
1569
+ wheelchairAccessible: boolean;
1570
+ images: string[] | null;
1571
+ floorplanImages: string[] | null;
1572
+ gradeCodes: string[] | null;
1573
+ customerPaymentPolicy: import("hono/utils/types").JSONValue;
1574
+ }[];
1657
1575
  };
1658
1576
  outputFormat: "json";
1659
1577
  status: import("hono/utils/http-status").ContentfulStatusCode;
1660
1578
  };
1661
1579
  };
1662
1580
  } & {
1663
- "/sailings/:key/bookings": {
1664
- $post: {
1581
+ "/ships/:key/categories/bulk": {
1582
+ $put: {
1665
1583
  input: {
1666
1584
  param: {
1667
1585
  key: string;
@@ -1681,10 +1599,9 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1681
1599
  };
1682
1600
  output: {
1683
1601
  error: string;
1684
- detail: string;
1685
1602
  };
1686
1603
  outputFormat: "json";
1687
- status: 501;
1604
+ status: 409;
1688
1605
  } | {
1689
1606
  input: {
1690
1607
  param: {
@@ -1693,355 +1610,470 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1693
1610
  };
1694
1611
  output: {
1695
1612
  data: {
1696
- bookingId: string;
1697
- bookingNumber: string;
1698
- cruiseDetails: {
1699
- source: "external" | "local";
1700
- mode: "reserve" | "inquiry";
1701
- createdAt: string;
1702
- updatedAt: string;
1703
- notes: string | null;
1704
- bookingId: string;
1705
- sailingId: string | null;
1706
- cabinCategoryId: string | null;
1707
- occupancy: number;
1708
- fareCode: string | null;
1709
- sourceProvider: string | null;
1710
- sourceRef: {
1711
- [x: string]: import("hono/utils/types").JSONValue;
1712
- connectionId?: string | undefined;
1713
- externalId: string;
1714
- } | null;
1715
- airArrangement: "none" | "cruise_line" | "independent" | null;
1716
- cabinId: string | null;
1717
- sailingDisplayName: string | null;
1718
- cabinDisplayName: string | null;
1719
- quotedPricePerPerson: string;
1720
- quotedTotalForCabin: string;
1721
- quotedCurrency: string;
1722
- quotedComponentsJson: {
1723
- kind: import("./schema-pricing.js").CruisePriceComponent["kind"];
1724
- label: string | null;
1725
- amount: string;
1726
- currency: string;
1727
- direction: import("./schema-pricing.js").CruisePriceComponent["direction"];
1728
- perPerson: boolean;
1729
- }[] | null;
1730
- connectorBookingRef: string | null;
1731
- connectorStatus: string | null;
1732
- linkedFlightBookingId: string | null;
1733
- };
1734
- quote: {
1735
- fareCode: string | null;
1736
- fareCodeName: string | null;
1737
- currency: string;
1738
- occupancy: number;
1739
- guestCount: number;
1740
- basePerPerson: string;
1741
- components: {
1742
- kind: import("./schema-pricing.js").CruisePriceComponent["kind"];
1743
- label: string | null;
1744
- amount: string;
1745
- currency: string;
1746
- direction: import("./schema-pricing.js").CruisePriceComponent["direction"];
1747
- perPerson: boolean;
1748
- }[];
1749
- totalPerPerson: string;
1750
- totalForCabin: string;
1751
- };
1752
- };
1613
+ id: string;
1614
+ name: string;
1615
+ createdAt: string;
1616
+ updatedAt: string;
1617
+ description: string | null;
1618
+ code: string;
1619
+ amenities: string[] | null;
1620
+ externalRefs: {
1621
+ [x: string]: string;
1622
+ } | null;
1623
+ shipId: string;
1624
+ roomType: "single" | "inside" | "oceanview" | "balcony" | "suite" | "penthouse";
1625
+ minOccupancy: number;
1626
+ maxOccupancy: number;
1627
+ squareFeet: string | null;
1628
+ wheelchairAccessible: boolean;
1629
+ images: string[] | null;
1630
+ floorplanImages: string[] | null;
1631
+ gradeCodes: string[] | null;
1632
+ customerPaymentPolicy: import("hono/utils/types").JSONValue;
1633
+ }[];
1753
1634
  };
1754
1635
  outputFormat: "json";
1755
- status: 201;
1636
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1756
1637
  };
1757
1638
  };
1758
1639
  } & {
1759
- "/sailings/:key/party-bookings": {
1760
- $post: {
1761
- input: {
1762
- param: {
1763
- key: string;
1764
- };
1765
- };
1766
- output: {
1767
- error: string;
1768
- detail: string;
1769
- };
1770
- outputFormat: "json";
1771
- status: 400;
1772
- } | {
1640
+ "/categories/:categoryId": {
1641
+ $put: {
1773
1642
  input: {
1774
1643
  param: {
1775
- key: string;
1644
+ categoryId: string;
1776
1645
  };
1777
1646
  };
1778
1647
  output: {
1779
1648
  error: string;
1780
- detail: string;
1781
1649
  };
1782
1650
  outputFormat: "json";
1783
- status: 501;
1651
+ status: 404;
1784
1652
  } | {
1785
1653
  input: {
1786
1654
  param: {
1787
- key: string;
1655
+ categoryId: string;
1788
1656
  };
1789
1657
  };
1790
1658
  output: {
1791
1659
  data: {
1792
- groupId: string;
1793
- primaryBookingId: string | null;
1794
- groupDetails: {
1795
- source: "external" | "local";
1796
- createdAt: string;
1797
- updatedAt: string;
1798
- notes: string | null;
1799
- cabinCount: number;
1800
- sailingId: string | null;
1801
- sourceProvider: string | null;
1802
- sourceRef: {
1803
- [x: string]: import("hono/utils/types").JSONValue;
1804
- connectionId?: string | undefined;
1805
- externalId: string;
1806
- } | null;
1807
- sailingDisplayName: string | null;
1808
- quotedCurrency: string;
1809
- connectorBookingRef: string | null;
1810
- bookingGroupId: string;
1811
- totalQuotedAmount: string;
1812
- };
1813
- cabins: {
1814
- bookingId: string;
1815
- bookingNumber: string;
1816
- cruiseDetails: {
1817
- source: "external" | "local";
1818
- mode: "reserve" | "inquiry";
1819
- createdAt: string;
1820
- updatedAt: string;
1821
- notes: string | null;
1822
- bookingId: string;
1823
- sailingId: string | null;
1824
- cabinCategoryId: string | null;
1825
- occupancy: number;
1826
- fareCode: string | null;
1827
- sourceProvider: string | null;
1828
- sourceRef: {
1829
- [x: string]: import("hono/utils/types").JSONValue;
1830
- connectionId?: string | undefined;
1831
- externalId: string;
1832
- } | null;
1833
- airArrangement: "none" | "cruise_line" | "independent" | null;
1834
- cabinId: string | null;
1835
- sailingDisplayName: string | null;
1836
- cabinDisplayName: string | null;
1837
- quotedPricePerPerson: string;
1838
- quotedTotalForCabin: string;
1839
- quotedCurrency: string;
1840
- quotedComponentsJson: {
1841
- kind: import("./schema-pricing.js").CruisePriceComponent["kind"];
1842
- label: string | null;
1843
- amount: string;
1844
- currency: string;
1845
- direction: import("./schema-pricing.js").CruisePriceComponent["direction"];
1846
- perPerson: boolean;
1847
- }[] | null;
1848
- connectorBookingRef: string | null;
1849
- connectorStatus: string | null;
1850
- linkedFlightBookingId: string | null;
1851
- };
1852
- quote: {
1853
- fareCode: string | null;
1854
- fareCodeName: string | null;
1855
- currency: string;
1856
- occupancy: number;
1857
- guestCount: number;
1858
- basePerPerson: string;
1859
- components: {
1860
- kind: import("./schema-pricing.js").CruisePriceComponent["kind"];
1861
- label: string | null;
1862
- amount: string;
1863
- currency: string;
1864
- direction: import("./schema-pricing.js").CruisePriceComponent["direction"];
1865
- perPerson: boolean;
1866
- }[];
1867
- totalPerPerson: string;
1868
- totalForCabin: string;
1869
- };
1870
- }[];
1660
+ id: string;
1661
+ name: string;
1662
+ createdAt: string;
1663
+ updatedAt: string;
1664
+ description: string | null;
1665
+ code: string;
1666
+ amenities: string[] | null;
1667
+ externalRefs: {
1668
+ [x: string]: string;
1669
+ } | null;
1670
+ shipId: string;
1671
+ roomType: "single" | "inside" | "oceanview" | "balcony" | "suite" | "penthouse";
1672
+ minOccupancy: number;
1673
+ maxOccupancy: number;
1674
+ squareFeet: string | null;
1675
+ wheelchairAccessible: boolean;
1676
+ images: string[] | null;
1677
+ floorplanImages: string[] | null;
1678
+ gradeCodes: string[] | null;
1679
+ customerPaymentPolicy: import("hono/utils/types").JSONValue;
1871
1680
  };
1872
1681
  };
1873
1682
  outputFormat: "json";
1874
- status: 201;
1683
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1875
1684
  };
1876
1685
  };
1877
1686
  } & {
1878
- "/prices": {
1687
+ "/categories/:categoryId/cabins": {
1879
1688
  $get: {
1880
- input: {};
1689
+ input: {
1690
+ param: {
1691
+ categoryId: string;
1692
+ };
1693
+ };
1881
1694
  output: {
1882
1695
  data: {
1883
1696
  id: string;
1884
- sailingId: string;
1885
- cabinCategoryId: string;
1886
- occupancy: number;
1887
- fareCode: string | null;
1888
- fareCodeName: string | null;
1889
- currency: string;
1890
- pricePerPerson: string;
1891
- secondGuestPricePerPerson: string | null;
1892
- singleSupplementPercent: string | null;
1893
- availability: "on_request" | "wait_list" | "sold_out" | "available" | "limited";
1894
- availabilityCount: number | null;
1895
- priceCatalogId: string | null;
1896
- priceScheduleId: string | null;
1897
- bookingDeadline: string | null;
1898
- requiresRequest: boolean;
1899
- notes: string | null;
1900
- externalRefs: {
1901
- [x: string]: string;
1902
- } | null;
1903
- lastSyncedAt: string | null;
1904
1697
  createdAt: string;
1905
1698
  updatedAt: string;
1699
+ notes: string | null;
1700
+ isActive: boolean;
1701
+ categoryId: string;
1702
+ cabinNumber: string;
1703
+ deckId: string | null;
1704
+ position: string | null;
1705
+ connectsTo: string | null;
1906
1706
  }[];
1907
- total: number;
1908
- limit: number;
1909
- offset: number;
1910
1707
  };
1911
1708
  outputFormat: "json";
1912
1709
  status: import("hono/utils/http-status").ContentfulStatusCode;
1913
1710
  };
1914
1711
  };
1915
1712
  } & {
1916
- "/prices": {
1917
- $post: {
1918
- input: {};
1713
+ "/categories/:categoryId/cabins/bulk": {
1714
+ $put: {
1715
+ input: {
1716
+ param: {
1717
+ categoryId: string;
1718
+ };
1719
+ };
1919
1720
  output: {
1920
1721
  data: {
1921
1722
  id: string;
1922
1723
  createdAt: string;
1923
1724
  updatedAt: string;
1924
- currency: string;
1925
1725
  notes: string | null;
1926
- availability: "on_request" | "wait_list" | "sold_out" | "available" | "limited";
1927
- externalRefs: {
1928
- [x: string]: string;
1929
- } | null;
1930
- lastSyncedAt: string | null;
1931
- sailingId: string;
1932
- cabinCategoryId: string;
1933
- occupancy: number;
1934
- fareCode: string | null;
1935
- fareCodeName: string | null;
1936
- pricePerPerson: string;
1937
- secondGuestPricePerPerson: string | null;
1938
- singleSupplementPercent: string | null;
1939
- availabilityCount: number | null;
1940
- priceCatalogId: string | null;
1941
- priceScheduleId: string | null;
1942
- bookingDeadline: string | null;
1943
- requiresRequest: boolean;
1726
+ isActive: boolean;
1727
+ categoryId: string;
1728
+ cabinNumber: string;
1729
+ deckId: string | null;
1730
+ position: string | null;
1731
+ connectsTo: string | null;
1732
+ }[];
1733
+ };
1734
+ outputFormat: "json";
1735
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1736
+ };
1737
+ };
1738
+ } & {
1739
+ "/cabins/:cabinId": {
1740
+ $put: {
1741
+ input: {
1742
+ param: {
1743
+ cabinId: string;
1744
+ };
1745
+ };
1746
+ output: {
1747
+ error: string;
1748
+ };
1749
+ outputFormat: "json";
1750
+ status: 404;
1751
+ } | {
1752
+ input: {
1753
+ param: {
1754
+ cabinId: string;
1755
+ };
1756
+ };
1757
+ output: {
1758
+ data: {
1759
+ id: string;
1760
+ createdAt: string;
1761
+ updatedAt: string;
1762
+ notes: string | null;
1763
+ isActive: boolean;
1764
+ categoryId: string;
1765
+ cabinNumber: string;
1766
+ deckId: string | null;
1767
+ position: string | null;
1768
+ connectsTo: string | null;
1769
+ };
1770
+ };
1771
+ outputFormat: "json";
1772
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1773
+ };
1774
+ };
1775
+ } & {
1776
+ "/search-index/bulk": {
1777
+ $put: {
1778
+ input: {};
1779
+ output: {
1780
+ data: {
1781
+ upserted: number;
1782
+ };
1783
+ };
1784
+ outputFormat: "json";
1785
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1786
+ };
1787
+ };
1788
+ } & {
1789
+ "/search-index/:crsiId": {
1790
+ $delete: {
1791
+ input: {
1792
+ param: {
1793
+ crsiId: string;
1794
+ };
1795
+ };
1796
+ output: null;
1797
+ outputFormat: "body";
1798
+ status: 204;
1799
+ } | {
1800
+ input: {
1801
+ param: {
1802
+ crsiId: string;
1803
+ };
1804
+ };
1805
+ output: {
1806
+ error: string;
1807
+ };
1808
+ outputFormat: "json";
1809
+ status: 404;
1810
+ };
1811
+ };
1812
+ } & {
1813
+ "/search-index/rebuild": {
1814
+ $post: {
1815
+ input: {};
1816
+ output: {
1817
+ data: {
1818
+ localUpserted: number;
1819
+ externalUpserted: number;
1820
+ externalErrors: {
1821
+ adapter: string;
1822
+ error: string;
1823
+ }[];
1824
+ };
1825
+ };
1826
+ outputFormat: "json";
1827
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1828
+ };
1829
+ };
1830
+ } & {
1831
+ "/:key": {
1832
+ $get: {
1833
+ input: {
1834
+ param: {
1835
+ key: string;
1836
+ };
1837
+ };
1838
+ output: {
1839
+ error: string;
1840
+ detail: string;
1841
+ };
1842
+ outputFormat: "json";
1843
+ status: 400;
1844
+ } | {
1845
+ input: {
1846
+ param: {
1847
+ key: string;
1848
+ };
1849
+ };
1850
+ output: {
1851
+ error: string;
1852
+ detail: string;
1853
+ };
1854
+ outputFormat: "json";
1855
+ status: 503;
1856
+ } | {
1857
+ input: {
1858
+ param: {
1859
+ key: string;
1860
+ };
1861
+ };
1862
+ output: {
1863
+ data: {
1864
+ source: string;
1865
+ sourceProvider: string;
1866
+ sourceRef: string;
1867
+ entityId: string;
1868
+ content: {
1869
+ cruise: {
1870
+ id: string;
1871
+ name: string;
1872
+ status?: string | undefined;
1873
+ description?: string | null | undefined;
1874
+ cruise_type?: string | null | undefined;
1875
+ hero_image_url?: string | null | undefined;
1876
+ highlights?: string[] | undefined;
1877
+ cruise_line?: string | null | undefined;
1878
+ duration_nights?: number | null | undefined;
1879
+ embarkation_port?: string | null | undefined;
1880
+ disembarkation_port?: string | null | undefined;
1881
+ };
1882
+ sailings: {
1883
+ id: string;
1884
+ start_date: string;
1885
+ end_date: string;
1886
+ source_ref?: string | null | undefined;
1887
+ duration_nights?: number | null | undefined;
1888
+ status?: string | null | undefined;
1889
+ embarkation_port?: string | null | undefined;
1890
+ disembarkation_port?: string | null | undefined;
1891
+ }[];
1892
+ cabin_categories: {
1893
+ id: string;
1894
+ name: string;
1895
+ inclusions: string[];
1896
+ code?: string | null | undefined;
1897
+ description?: string | null | undefined;
1898
+ type?: string | null | undefined;
1899
+ capacity_min?: number | null | undefined;
1900
+ capacity_max?: number | null | undefined;
1901
+ }[];
1902
+ itinerary_stops: {
1903
+ day_number: number;
1904
+ port_name: string;
1905
+ is_at_sea: boolean;
1906
+ date?: string | null | undefined;
1907
+ arrival_time?: string | null | undefined;
1908
+ departure_time?: string | null | undefined;
1909
+ description?: string | null | undefined;
1910
+ }[];
1911
+ policies: {
1912
+ kind: "supplier_notes" | "payment" | "cancellation" | "requirements";
1913
+ body: string;
1914
+ rules?: import("hono/utils/types").JSONValue | undefined;
1915
+ }[];
1916
+ ship?: {
1917
+ name: string;
1918
+ id?: string | null | undefined;
1919
+ description?: string | null | undefined;
1920
+ capacity?: number | null | undefined;
1921
+ decks?: number | null | undefined;
1922
+ year_built?: number | null | undefined;
1923
+ } | null | undefined;
1924
+ };
1925
+ servedLocale: string;
1926
+ matchKind: import("@voyantjs/catalog").ContentLocaleMatchKind;
1927
+ contentSource: "sourced-cache" | "sourced-fresh" | "synthesized";
1928
+ servedStale: boolean;
1929
+ synthesized: boolean;
1930
+ machineTranslated: boolean;
1931
+ };
1932
+ };
1933
+ outputFormat: "json";
1934
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1935
+ } | {
1936
+ input: {
1937
+ param: {
1938
+ key: string;
1939
+ };
1940
+ };
1941
+ output: {
1942
+ error: string;
1943
+ };
1944
+ outputFormat: "json";
1945
+ status: 404;
1946
+ } | {
1947
+ input: {
1948
+ param: {
1949
+ key: string;
1950
+ };
1951
+ };
1952
+ output: {
1953
+ data: {
1954
+ source: string;
1955
+ sourceProvider: null;
1956
+ sourceRef: null;
1957
+ cruise: {
1958
+ id: string;
1959
+ name: string;
1960
+ createdAt: string;
1961
+ updatedAt: string;
1962
+ slug: string;
1963
+ status: "live" | "draft" | "awaiting_review" | "archived";
1964
+ description: string | null;
1965
+ lineSupplierId: string | null;
1966
+ externalRefs: {
1967
+ [x: string]: string;
1968
+ } | null;
1969
+ customerPaymentPolicy: import("hono/utils/types").JSONValue;
1970
+ cruiseType: "ocean" | "river" | "expedition" | "coastal";
1971
+ defaultShipId: string | null;
1972
+ nights: number;
1973
+ embarkPortFacilityId: string | null;
1974
+ disembarkPortFacilityId: string | null;
1975
+ shortDescription: string | null;
1976
+ highlights: string[] | null;
1977
+ inclusionsHtml: string | null;
1978
+ exclusionsHtml: string | null;
1979
+ regions: string[] | null;
1980
+ themes: string[] | null;
1981
+ heroImageUrl: string | null;
1982
+ mapImageUrl: string | null;
1983
+ lowestPriceCached: string | null;
1984
+ lowestPriceCurrencyCached: string | null;
1985
+ earliestDepartureCached: string | null;
1986
+ latestDepartureCached: string | null;
1987
+ sailings?: {
1988
+ id: string;
1989
+ createdAt: string;
1990
+ updatedAt: string;
1991
+ externalRefs: {
1992
+ [x: string]: string;
1993
+ } | null;
1994
+ shipId: string;
1995
+ customerPaymentPolicy: import("hono/utils/types").JSONValue;
1996
+ embarkPortFacilityId: string | null;
1997
+ disembarkPortFacilityId: string | null;
1998
+ cruiseId: string;
1999
+ departureDate: string;
2000
+ returnDate: string;
2001
+ direction: "upstream" | "downstream" | "round_trip" | "one_way" | null;
2002
+ availabilityNote: string | null;
2003
+ isCharter: boolean;
2004
+ salesStatus: "open" | "on_request" | "wait_list" | "sold_out" | "closed";
2005
+ lastSyncedAt: string | null;
2006
+ }[] | undefined;
2007
+ days?: {
2008
+ id: string;
2009
+ createdAt: string;
2010
+ updatedAt: string;
2011
+ description: string | null;
2012
+ meals: {
2013
+ breakfast?: boolean | undefined;
2014
+ lunch?: boolean | undefined;
2015
+ dinner?: boolean | undefined;
2016
+ } | null;
2017
+ cruiseId: string;
2018
+ departureTime: string | null;
2019
+ title: string | null;
2020
+ dayNumber: number;
2021
+ portFacilityId: string | null;
2022
+ arrivalTime: string | null;
2023
+ isOvernight: boolean;
2024
+ isSeaDay: boolean;
2025
+ isExpeditionLanding: boolean;
2026
+ }[] | undefined;
2027
+ };
1944
2028
  };
1945
2029
  };
1946
2030
  outputFormat: "json";
1947
- status: 201;
2031
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1948
2032
  };
1949
2033
  };
1950
2034
  } & {
1951
- "/prices/:priceId": {
2035
+ "/:key": {
1952
2036
  $put: {
1953
2037
  input: {
1954
2038
  param: {
1955
- priceId: string;
2039
+ key: string;
1956
2040
  };
1957
2041
  };
1958
2042
  output: {
1959
2043
  error: string;
2044
+ detail: string;
1960
2045
  };
1961
2046
  outputFormat: "json";
1962
- status: 404;
2047
+ status: 400;
1963
2048
  } | {
1964
2049
  input: {
1965
2050
  param: {
1966
- priceId: string;
2051
+ key: string;
1967
2052
  };
1968
2053
  };
1969
2054
  output: {
1970
- data: {
1971
- id: string;
1972
- createdAt: string;
1973
- updatedAt: string;
1974
- currency: string;
1975
- notes: string | null;
1976
- availability: "on_request" | "wait_list" | "sold_out" | "available" | "limited";
1977
- externalRefs: {
1978
- [x: string]: string;
1979
- } | null;
1980
- lastSyncedAt: string | null;
1981
- sailingId: string;
1982
- cabinCategoryId: string;
1983
- occupancy: number;
1984
- fareCode: string | null;
1985
- fareCodeName: string | null;
1986
- pricePerPerson: string;
1987
- secondGuestPricePerPerson: string | null;
1988
- singleSupplementPercent: string | null;
1989
- availabilityCount: number | null;
1990
- priceCatalogId: string | null;
1991
- priceScheduleId: string | null;
1992
- bookingDeadline: string | null;
1993
- requiresRequest: boolean;
1994
- };
2055
+ error: string;
2056
+ detail: string;
1995
2057
  };
1996
2058
  outputFormat: "json";
1997
- status: import("hono/utils/http-status").ContentfulStatusCode;
1998
- };
1999
- };
2000
- } & {
2001
- "/ships": {
2002
- $get: {
2003
- input: {};
2059
+ status: 409;
2060
+ } | {
2061
+ input: {
2062
+ param: {
2063
+ key: string;
2064
+ };
2065
+ };
2004
2066
  output: {
2005
- data: {
2006
- id: string;
2007
- lineSupplierId: string | null;
2008
- name: string;
2009
- slug: string;
2010
- shipType: "ocean" | "river" | "expedition" | "coastal" | "yacht" | "sailing";
2011
- capacityGuests: number | null;
2012
- capacityCrew: number | null;
2013
- cabinCount: number | null;
2014
- deckCount: number | null;
2015
- lengthMeters: string | null;
2016
- cruisingSpeedKnots: string | null;
2017
- yearBuilt: number | null;
2018
- yearRefurbished: number | null;
2019
- imo: string | null;
2020
- description: string | null;
2021
- deckPlanUrl: string | null;
2022
- gallery: string[] | null;
2023
- amenities: {
2024
- [x: string]: import("hono/utils/types").JSONValue;
2025
- } | null;
2026
- externalRefs: {
2027
- [x: string]: string;
2028
- } | null;
2029
- isActive: boolean;
2030
- createdAt: string;
2031
- updatedAt: string;
2032
- }[];
2033
- total: number;
2034
- limit: number;
2035
- offset: number;
2067
+ error: string;
2036
2068
  };
2037
2069
  outputFormat: "json";
2038
- status: import("hono/utils/http-status").ContentfulStatusCode;
2039
- };
2040
- };
2041
- } & {
2042
- "/ships": {
2043
- $post: {
2044
- input: {};
2070
+ status: 404;
2071
+ } | {
2072
+ input: {
2073
+ param: {
2074
+ key: string;
2075
+ };
2076
+ };
2045
2077
  output: {
2046
2078
  data: {
2047
2079
  id: string;
@@ -2049,36 +2081,39 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
2049
2081
  createdAt: string;
2050
2082
  updatedAt: string;
2051
2083
  slug: string;
2084
+ status: "live" | "draft" | "awaiting_review" | "archived";
2052
2085
  description: string | null;
2053
2086
  lineSupplierId: string | null;
2054
- shipType: "ocean" | "river" | "expedition" | "coastal" | "yacht" | "sailing";
2055
- capacityGuests: number | null;
2056
- capacityCrew: number | null;
2057
- cabinCount: number | null;
2058
- deckCount: number | null;
2059
- lengthMeters: string | null;
2060
- cruisingSpeedKnots: string | null;
2061
- yearBuilt: number | null;
2062
- yearRefurbished: number | null;
2063
- imo: string | null;
2064
- deckPlanUrl: string | null;
2065
- gallery: string[] | null;
2066
- amenities: {
2067
- [x: string]: import("hono/utils/types").JSONValue;
2068
- } | null;
2069
2087
  externalRefs: {
2070
2088
  [x: string]: string;
2071
2089
  } | null;
2072
- isActive: boolean;
2090
+ customerPaymentPolicy: import("hono/utils/types").JSONValue;
2091
+ cruiseType: "ocean" | "river" | "expedition" | "coastal";
2092
+ defaultShipId: string | null;
2093
+ nights: number;
2094
+ embarkPortFacilityId: string | null;
2095
+ disembarkPortFacilityId: string | null;
2096
+ shortDescription: string | null;
2097
+ highlights: string[] | null;
2098
+ inclusionsHtml: string | null;
2099
+ exclusionsHtml: string | null;
2100
+ regions: string[] | null;
2101
+ themes: string[] | null;
2102
+ heroImageUrl: string | null;
2103
+ mapImageUrl: string | null;
2104
+ lowestPriceCached: string | null;
2105
+ lowestPriceCurrencyCached: string | null;
2106
+ earliestDepartureCached: string | null;
2107
+ latestDepartureCached: string | null;
2073
2108
  };
2074
2109
  };
2075
2110
  outputFormat: "json";
2076
- status: 201;
2111
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2077
2112
  };
2078
2113
  };
2079
2114
  } & {
2080
- "/ships/:key": {
2081
- $get: {
2115
+ "/:key": {
2116
+ $delete: {
2082
2117
  input: {
2083
2118
  param: {
2084
2119
  key: string;
@@ -2101,7 +2136,7 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
2101
2136
  detail: string;
2102
2137
  };
2103
2138
  outputFormat: "json";
2104
- status: 501;
2139
+ status: 409;
2105
2140
  } | {
2106
2141
  input: {
2107
2142
  param: {
@@ -2113,74 +2148,6 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
2113
2148
  };
2114
2149
  outputFormat: "json";
2115
2150
  status: 404;
2116
- } | {
2117
- input: {
2118
- param: {
2119
- key: string;
2120
- };
2121
- };
2122
- output: {
2123
- data: {
2124
- source: string;
2125
- sourceProvider: string;
2126
- sourceRef: {
2127
- [x: string]: import("hono/utils/types").JSONValue;
2128
- connectionId?: string | undefined;
2129
- externalId: string;
2130
- };
2131
- ship: {
2132
- sourceRef: {
2133
- [x: string]: import("hono/utils/types").JSONValue;
2134
- connectionId?: string | undefined;
2135
- externalId: string;
2136
- };
2137
- name: string;
2138
- slug: string;
2139
- shipType: "ocean" | "river" | "expedition" | "yacht" | "sailing" | "coastal";
2140
- capacityGuests?: number | null | undefined;
2141
- capacityCrew?: number | null | undefined;
2142
- cabinCount?: number | null | undefined;
2143
- deckCount?: number | null | undefined;
2144
- lengthMeters?: string | null | undefined;
2145
- cruisingSpeedKnots?: string | null | undefined;
2146
- yearBuilt?: number | null | undefined;
2147
- yearRefurbished?: number | null | undefined;
2148
- imo?: string | null | undefined;
2149
- description?: string | null | undefined;
2150
- deckPlanUrl?: string | null | undefined;
2151
- gallery?: string[] | undefined;
2152
- amenities?: {
2153
- [x: string]: import("hono/utils/types").JSONValue;
2154
- } | undefined;
2155
- decks?: {
2156
- name: string;
2157
- level?: number | null | undefined;
2158
- planImageUrl?: string | null | undefined;
2159
- }[] | undefined;
2160
- categories?: {
2161
- sourceRef: {
2162
- [x: string]: import("hono/utils/types").JSONValue;
2163
- connectionId?: string | undefined;
2164
- externalId: string;
2165
- };
2166
- code: string;
2167
- name: string;
2168
- roomType: "inside" | "oceanview" | "balcony" | "suite" | "penthouse" | "single";
2169
- description?: string | null | undefined;
2170
- minOccupancy: number;
2171
- maxOccupancy: number;
2172
- squareFeet?: string | null | undefined;
2173
- wheelchairAccessible?: boolean | undefined;
2174
- amenities?: string[] | undefined;
2175
- images?: string[] | undefined;
2176
- floorplanImages?: string[] | undefined;
2177
- gradeCodes?: string[] | undefined;
2178
- }[] | undefined;
2179
- };
2180
- };
2181
- };
2182
- outputFormat: "json";
2183
- status: import("hono/utils/http-status").ContentfulStatusCode;
2184
2151
  } | {
2185
2152
  input: {
2186
2153
  param: {
@@ -2194,27 +2161,30 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
2194
2161
  createdAt: string;
2195
2162
  updatedAt: string;
2196
2163
  slug: string;
2164
+ status: "live" | "draft" | "awaiting_review" | "archived";
2197
2165
  description: string | null;
2198
2166
  lineSupplierId: string | null;
2199
- shipType: "ocean" | "river" | "expedition" | "coastal" | "yacht" | "sailing";
2200
- capacityGuests: number | null;
2201
- capacityCrew: number | null;
2202
- cabinCount: number | null;
2203
- deckCount: number | null;
2204
- lengthMeters: string | null;
2205
- cruisingSpeedKnots: string | null;
2206
- yearBuilt: number | null;
2207
- yearRefurbished: number | null;
2208
- imo: string | null;
2209
- deckPlanUrl: string | null;
2210
- gallery: string[] | null;
2211
- amenities: {
2212
- [x: string]: import("hono/utils/types").JSONValue;
2213
- } | null;
2214
2167
  externalRefs: {
2215
2168
  [x: string]: string;
2216
2169
  } | null;
2217
- isActive: boolean;
2170
+ customerPaymentPolicy: import("hono/utils/types").JSONValue;
2171
+ cruiseType: "ocean" | "river" | "expedition" | "coastal";
2172
+ defaultShipId: string | null;
2173
+ nights: number;
2174
+ embarkPortFacilityId: string | null;
2175
+ disembarkPortFacilityId: string | null;
2176
+ shortDescription: string | null;
2177
+ highlights: string[] | null;
2178
+ inclusionsHtml: string | null;
2179
+ exclusionsHtml: string | null;
2180
+ regions: string[] | null;
2181
+ themes: string[] | null;
2182
+ heroImageUrl: string | null;
2183
+ mapImageUrl: string | null;
2184
+ lowestPriceCached: string | null;
2185
+ lowestPriceCurrencyCached: string | null;
2186
+ earliestDepartureCached: string | null;
2187
+ latestDepartureCached: string | null;
2218
2188
  };
2219
2189
  };
2220
2190
  outputFormat: "json";
@@ -2222,8 +2192,8 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
2222
2192
  };
2223
2193
  };
2224
2194
  } & {
2225
- "/ships/:key": {
2226
- $put: {
2195
+ "/:key/aggregates/recompute": {
2196
+ $post: {
2227
2197
  input: {
2228
2198
  param: {
2229
2199
  key: string;
@@ -2243,6 +2213,7 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
2243
2213
  };
2244
2214
  output: {
2245
2215
  error: string;
2216
+ detail: string;
2246
2217
  };
2247
2218
  outputFormat: "json";
2248
2219
  status: 409;
@@ -2270,27 +2241,30 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
2270
2241
  createdAt: string;
2271
2242
  updatedAt: string;
2272
2243
  slug: string;
2244
+ status: "live" | "draft" | "awaiting_review" | "archived";
2273
2245
  description: string | null;
2274
2246
  lineSupplierId: string | null;
2275
- shipType: "ocean" | "river" | "expedition" | "coastal" | "yacht" | "sailing";
2276
- capacityGuests: number | null;
2277
- capacityCrew: number | null;
2278
- cabinCount: number | null;
2279
- deckCount: number | null;
2280
- lengthMeters: string | null;
2281
- cruisingSpeedKnots: string | null;
2282
- yearBuilt: number | null;
2283
- yearRefurbished: number | null;
2284
- imo: string | null;
2285
- deckPlanUrl: string | null;
2286
- gallery: string[] | null;
2287
- amenities: {
2288
- [x: string]: import("hono/utils/types").JSONValue;
2289
- } | null;
2290
2247
  externalRefs: {
2291
2248
  [x: string]: string;
2292
2249
  } | null;
2293
- isActive: boolean;
2250
+ customerPaymentPolicy: import("hono/utils/types").JSONValue;
2251
+ cruiseType: "ocean" | "river" | "expedition" | "coastal";
2252
+ defaultShipId: string | null;
2253
+ nights: number;
2254
+ embarkPortFacilityId: string | null;
2255
+ disembarkPortFacilityId: string | null;
2256
+ shortDescription: string | null;
2257
+ highlights: string[] | null;
2258
+ inclusionsHtml: string | null;
2259
+ exclusionsHtml: string | null;
2260
+ regions: string[] | null;
2261
+ themes: string[] | null;
2262
+ heroImageUrl: string | null;
2263
+ mapImageUrl: string | null;
2264
+ lowestPriceCached: string | null;
2265
+ lowestPriceCurrencyCached: string | null;
2266
+ earliestDepartureCached: string | null;
2267
+ latestDepartureCached: string | null;
2294
2268
  };
2295
2269
  };
2296
2270
  outputFormat: "json";
@@ -2298,8 +2272,41 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
2298
2272
  };
2299
2273
  };
2300
2274
  } & {
2301
- "/ships/:key/decks": {
2275
+ "/:key/sailings": {
2302
2276
  $get: {
2277
+ input: {
2278
+ param: {
2279
+ key: string;
2280
+ };
2281
+ };
2282
+ output: {
2283
+ data: {
2284
+ id: string;
2285
+ cruiseId: string;
2286
+ shipId: string;
2287
+ departureDate: string;
2288
+ returnDate: string;
2289
+ embarkPortFacilityId: string | null;
2290
+ disembarkPortFacilityId: string | null;
2291
+ direction: "upstream" | "downstream" | "round_trip" | "one_way" | null;
2292
+ availabilityNote: string | null;
2293
+ isCharter: boolean;
2294
+ salesStatus: "open" | "on_request" | "wait_list" | "sold_out" | "closed";
2295
+ externalRefs: {
2296
+ [x: string]: string;
2297
+ } | null;
2298
+ customerPaymentPolicy: import("hono/utils/types").JSONValue;
2299
+ lastSyncedAt: string | null;
2300
+ createdAt: string;
2301
+ updatedAt: string;
2302
+ }[];
2303
+ total: number;
2304
+ limit: number;
2305
+ offset: number;
2306
+ };
2307
+ outputFormat: "json";
2308
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2309
+ } | {
2303
2310
  input: {
2304
2311
  param: {
2305
2312
  key: string;
@@ -2331,18 +2338,44 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
2331
2338
  };
2332
2339
  output: {
2333
2340
  data: {
2334
- name: string;
2335
- level?: number | null | undefined;
2336
- planImageUrl?: string | null | undefined;
2341
+ source: string;
2342
+ sourceProvider: string;
2343
+ key: string;
2344
+ sailing: {
2345
+ sourceRef: {
2346
+ [x: string]: import("hono/utils/types").JSONValue;
2347
+ connectionId?: string | undefined;
2348
+ externalId: string;
2349
+ };
2350
+ cruiseRef: {
2351
+ [x: string]: import("hono/utils/types").JSONValue;
2352
+ connectionId?: string | undefined;
2353
+ externalId: string;
2354
+ };
2355
+ shipRef: {
2356
+ [x: string]: import("hono/utils/types").JSONValue;
2357
+ connectionId?: string | undefined;
2358
+ externalId: string;
2359
+ };
2360
+ departureDate: string;
2361
+ returnDate: string;
2362
+ embarkPortName?: string | null | undefined;
2363
+ disembarkPortName?: string | null | undefined;
2364
+ direction?: "upstream" | "downstream" | "round_trip" | "one_way" | null | undefined;
2365
+ availabilityNote?: string | null | undefined;
2366
+ isCharter?: boolean | undefined;
2367
+ salesStatus?: "open" | "on_request" | "wait_list" | "sold_out" | "closed" | undefined;
2368
+ };
2337
2369
  }[];
2370
+ total: number;
2338
2371
  };
2339
2372
  outputFormat: "json";
2340
2373
  status: import("hono/utils/http-status").ContentfulStatusCode;
2341
2374
  };
2342
2375
  };
2343
2376
  } & {
2344
- "/ships/:key/decks": {
2345
- $post: {
2377
+ "/:key/days/bulk": {
2378
+ $put: {
2346
2379
  input: {
2347
2380
  param: {
2348
2381
  key: string;
@@ -2374,55 +2407,55 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
2374
2407
  output: {
2375
2408
  data: {
2376
2409
  id: string;
2377
- name: string;
2378
2410
  createdAt: string;
2379
2411
  updatedAt: string;
2380
- shipId: string;
2381
- level: number | null;
2382
- planImageUrl: string | null;
2383
- };
2412
+ description: string | null;
2413
+ meals: {
2414
+ breakfast?: boolean | undefined;
2415
+ lunch?: boolean | undefined;
2416
+ dinner?: boolean | undefined;
2417
+ } | null;
2418
+ cruiseId: string;
2419
+ departureTime: string | null;
2420
+ title: string | null;
2421
+ dayNumber: number;
2422
+ portFacilityId: string | null;
2423
+ arrivalTime: string | null;
2424
+ isOvernight: boolean;
2425
+ isSeaDay: boolean;
2426
+ isExpeditionLanding: boolean;
2427
+ }[];
2384
2428
  };
2385
2429
  outputFormat: "json";
2386
- status: 201;
2430
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2387
2431
  };
2388
2432
  };
2389
2433
  } & {
2390
- "/decks/:deckId": {
2391
- $put: {
2434
+ "/:key/refresh": {
2435
+ $post: {
2392
2436
  input: {
2393
2437
  param: {
2394
- deckId: string;
2438
+ key: string;
2395
2439
  };
2396
2440
  };
2397
2441
  output: {
2398
2442
  error: string;
2443
+ detail: string;
2399
2444
  };
2400
2445
  outputFormat: "json";
2401
- status: 404;
2446
+ status: 503;
2402
2447
  } | {
2403
2448
  input: {
2404
2449
  param: {
2405
- deckId: string;
2450
+ key: string;
2406
2451
  };
2407
2452
  };
2408
2453
  output: {
2409
- data: {
2410
- id: string;
2411
- name: string;
2412
- createdAt: string;
2413
- updatedAt: string;
2414
- shipId: string;
2415
- level: number | null;
2416
- planImageUrl: string | null;
2417
- };
2454
+ error: string;
2418
2455
  };
2419
2456
  outputFormat: "json";
2420
- status: import("hono/utils/http-status").ContentfulStatusCode;
2421
- };
2422
- };
2423
- } & {
2424
- "/ships/:key/categories": {
2425
- $get: {
2457
+ status: 400;
2458
+ } | {
2426
2459
  input: {
2427
2460
  param: {
2428
2461
  key: string;
@@ -2433,8 +2466,88 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
2433
2466
  detail: string;
2434
2467
  };
2435
2468
  outputFormat: "json";
2436
- status: 400;
2469
+ status: 404;
2437
2470
  } | {
2471
+ input: {
2472
+ param: {
2473
+ key: string;
2474
+ };
2475
+ };
2476
+ output: {
2477
+ data: {
2478
+ source: string;
2479
+ sourceProvider: string;
2480
+ sourceRef: string;
2481
+ entityId: string;
2482
+ content: {
2483
+ cruise: {
2484
+ id: string;
2485
+ name: string;
2486
+ status?: string | undefined;
2487
+ description?: string | null | undefined;
2488
+ cruise_type?: string | null | undefined;
2489
+ hero_image_url?: string | null | undefined;
2490
+ highlights?: string[] | undefined;
2491
+ cruise_line?: string | null | undefined;
2492
+ duration_nights?: number | null | undefined;
2493
+ embarkation_port?: string | null | undefined;
2494
+ disembarkation_port?: string | null | undefined;
2495
+ };
2496
+ sailings: {
2497
+ id: string;
2498
+ start_date: string;
2499
+ end_date: string;
2500
+ source_ref?: string | null | undefined;
2501
+ duration_nights?: number | null | undefined;
2502
+ status?: string | null | undefined;
2503
+ embarkation_port?: string | null | undefined;
2504
+ disembarkation_port?: string | null | undefined;
2505
+ }[];
2506
+ cabin_categories: {
2507
+ id: string;
2508
+ name: string;
2509
+ inclusions: string[];
2510
+ code?: string | null | undefined;
2511
+ description?: string | null | undefined;
2512
+ type?: string | null | undefined;
2513
+ capacity_min?: number | null | undefined;
2514
+ capacity_max?: number | null | undefined;
2515
+ }[];
2516
+ itinerary_stops: {
2517
+ day_number: number;
2518
+ port_name: string;
2519
+ is_at_sea: boolean;
2520
+ date?: string | null | undefined;
2521
+ arrival_time?: string | null | undefined;
2522
+ departure_time?: string | null | undefined;
2523
+ description?: string | null | undefined;
2524
+ }[];
2525
+ policies: {
2526
+ kind: "supplier_notes" | "payment" | "cancellation" | "requirements";
2527
+ body: string;
2528
+ rules?: import("hono/utils/types").JSONValue | undefined;
2529
+ }[];
2530
+ ship?: {
2531
+ name: string;
2532
+ id?: string | null | undefined;
2533
+ description?: string | null | undefined;
2534
+ capacity?: number | null | undefined;
2535
+ decks?: number | null | undefined;
2536
+ year_built?: number | null | undefined;
2537
+ } | null | undefined;
2538
+ };
2539
+ contentSource: "sourced-cache" | "sourced-fresh" | "synthesized";
2540
+ servedStale: boolean;
2541
+ refreshedAt: string;
2542
+ };
2543
+ };
2544
+ outputFormat: "json";
2545
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2546
+ };
2547
+ };
2548
+ } & {
2549
+ "/:key/detach": {
2550
+ $post: {
2438
2551
  input: {
2439
2552
  param: {
2440
2553
  key: string;
@@ -2453,28 +2566,10 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
2453
2566
  };
2454
2567
  };
2455
2568
  output: {
2456
- data: {
2457
- sourceRef: {
2458
- [x: string]: import("hono/utils/types").JSONValue;
2459
- connectionId?: string | undefined;
2460
- externalId: string;
2461
- };
2462
- code: string;
2463
- name: string;
2464
- roomType: "inside" | "oceanview" | "balcony" | "suite" | "penthouse" | "single";
2465
- description?: string | null | undefined;
2466
- minOccupancy: number;
2467
- maxOccupancy: number;
2468
- squareFeet?: string | null | undefined;
2469
- wheelchairAccessible?: boolean | undefined;
2470
- amenities?: string[] | undefined;
2471
- images?: string[] | undefined;
2472
- floorplanImages?: string[] | undefined;
2473
- gradeCodes?: string[] | undefined;
2474
- }[];
2569
+ error: string;
2475
2570
  };
2476
2571
  outputFormat: "json";
2477
- status: import("hono/utils/http-status").ContentfulStatusCode;
2572
+ status: 400;
2478
2573
  } | {
2479
2574
  input: {
2480
2575
  param: {
@@ -2487,31 +2582,40 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
2487
2582
  name: string;
2488
2583
  createdAt: string;
2489
2584
  updatedAt: string;
2585
+ slug: string;
2586
+ status: "live" | "draft" | "awaiting_review" | "archived";
2490
2587
  description: string | null;
2491
- code: string;
2492
- amenities: string[] | null;
2588
+ lineSupplierId: string | null;
2493
2589
  externalRefs: {
2494
2590
  [x: string]: string;
2495
2591
  } | null;
2496
- shipId: string;
2497
- roomType: "single" | "inside" | "oceanview" | "balcony" | "suite" | "penthouse";
2498
- minOccupancy: number;
2499
- maxOccupancy: number;
2500
- squareFeet: string | null;
2501
- wheelchairAccessible: boolean;
2502
- images: string[] | null;
2503
- floorplanImages: string[] | null;
2504
- gradeCodes: string[] | null;
2505
2592
  customerPaymentPolicy: import("hono/utils/types").JSONValue;
2506
- }[];
2593
+ cruiseType: "ocean" | "river" | "expedition" | "coastal";
2594
+ defaultShipId: string | null;
2595
+ nights: number;
2596
+ embarkPortFacilityId: string | null;
2597
+ disembarkPortFacilityId: string | null;
2598
+ shortDescription: string | null;
2599
+ highlights: string[] | null;
2600
+ inclusionsHtml: string | null;
2601
+ exclusionsHtml: string | null;
2602
+ regions: string[] | null;
2603
+ themes: string[] | null;
2604
+ heroImageUrl: string | null;
2605
+ mapImageUrl: string | null;
2606
+ lowestPriceCached: string | null;
2607
+ lowestPriceCurrencyCached: string | null;
2608
+ earliestDepartureCached: string | null;
2609
+ latestDepartureCached: string | null;
2610
+ };
2507
2611
  };
2508
2612
  outputFormat: "json";
2509
- status: import("hono/utils/http-status").ContentfulStatusCode;
2613
+ status: 201;
2510
2614
  };
2511
2615
  };
2512
2616
  } & {
2513
- "/ships/:key/categories/bulk": {
2514
- $put: {
2617
+ "/:key/enrichment": {
2618
+ $get: {
2515
2619
  input: {
2516
2620
  param: {
2517
2621
  key: string;
@@ -2531,9 +2635,10 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
2531
2635
  };
2532
2636
  output: {
2533
2637
  error: string;
2638
+ detail: string;
2534
2639
  };
2535
2640
  outputFormat: "json";
2536
- status: 409;
2641
+ status: 501;
2537
2642
  } | {
2538
2643
  input: {
2539
2644
  param: {
@@ -2547,21 +2652,11 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
2547
2652
  createdAt: string;
2548
2653
  updatedAt: string;
2549
2654
  description: string | null;
2550
- code: string;
2551
- amenities: string[] | null;
2552
- externalRefs: {
2553
- [x: string]: string;
2554
- } | null;
2555
- shipId: string;
2556
- roomType: "single" | "inside" | "oceanview" | "balcony" | "suite" | "penthouse";
2557
- minOccupancy: number;
2558
- maxOccupancy: number;
2559
- squareFeet: string | null;
2560
- wheelchairAccessible: boolean;
2561
- images: string[] | null;
2562
- floorplanImages: string[] | null;
2563
- gradeCodes: string[] | null;
2564
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
2655
+ cruiseId: string;
2656
+ kind: "other" | "naturalist" | "historian" | "photographer" | "lecturer" | "expert";
2657
+ title: string | null;
2658
+ sortOrder: number;
2659
+ bioImageUrl: string | null;
2565
2660
  }[];
2566
2661
  };
2567
2662
  outputFormat: "json";
@@ -2569,197 +2664,104 @@ export declare const cruiseAdminRoutes: import("hono/hono-base").HonoBase<Env, {
2569
2664
  };
2570
2665
  };
2571
2666
  } & {
2572
- "/categories/:categoryId": {
2573
- $put: {
2667
+ "/:key/enrichment": {
2668
+ $post: {
2574
2669
  input: {
2575
2670
  param: {
2576
- categoryId: string;
2671
+ key: string;
2577
2672
  };
2578
2673
  };
2579
2674
  output: {
2580
2675
  error: string;
2676
+ detail: string;
2581
2677
  };
2582
2678
  outputFormat: "json";
2583
- status: 404;
2679
+ status: 400;
2584
2680
  } | {
2585
2681
  input: {
2586
2682
  param: {
2587
- categoryId: string;
2683
+ key: string;
2588
2684
  };
2589
2685
  };
2590
2686
  output: {
2591
- data: {
2592
- id: string;
2593
- name: string;
2594
- createdAt: string;
2595
- updatedAt: string;
2596
- description: string | null;
2597
- code: string;
2598
- amenities: string[] | null;
2599
- externalRefs: {
2600
- [x: string]: string;
2601
- } | null;
2602
- shipId: string;
2603
- roomType: "single" | "inside" | "oceanview" | "balcony" | "suite" | "penthouse";
2604
- minOccupancy: number;
2605
- maxOccupancy: number;
2606
- squareFeet: string | null;
2607
- wheelchairAccessible: boolean;
2608
- images: string[] | null;
2609
- floorplanImages: string[] | null;
2610
- gradeCodes: string[] | null;
2611
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
2612
- };
2687
+ error: string;
2613
2688
  };
2614
2689
  outputFormat: "json";
2615
- status: import("hono/utils/http-status").ContentfulStatusCode;
2616
- };
2617
- };
2618
- } & {
2619
- "/categories/:categoryId/cabins": {
2620
- $get: {
2690
+ status: 409;
2691
+ } | {
2621
2692
  input: {
2622
2693
  param: {
2623
- categoryId: string;
2694
+ key: string;
2624
2695
  };
2625
2696
  };
2626
2697
  output: {
2627
2698
  data: {
2628
2699
  id: string;
2700
+ name: string;
2629
2701
  createdAt: string;
2630
2702
  updatedAt: string;
2631
- notes: string | null;
2632
- isActive: boolean;
2633
- categoryId: string;
2634
- cabinNumber: string;
2635
- deckId: string | null;
2636
- position: string | null;
2637
- connectsTo: string | null;
2638
- }[];
2703
+ description: string | null;
2704
+ cruiseId: string;
2705
+ kind: "other" | "naturalist" | "historian" | "photographer" | "lecturer" | "expert";
2706
+ title: string | null;
2707
+ sortOrder: number;
2708
+ bioImageUrl: string | null;
2709
+ };
2639
2710
  };
2640
2711
  outputFormat: "json";
2641
- status: import("hono/utils/http-status").ContentfulStatusCode;
2712
+ status: 201;
2642
2713
  };
2643
2714
  };
2644
2715
  } & {
2645
- "/categories/:categoryId/cabins/bulk": {
2716
+ "/:key/enrichment/bulk": {
2646
2717
  $put: {
2647
2718
  input: {
2648
2719
  param: {
2649
- categoryId: string;
2720
+ key: string;
2650
2721
  };
2651
2722
  };
2652
2723
  output: {
2653
- data: {
2654
- id: string;
2655
- createdAt: string;
2656
- updatedAt: string;
2657
- notes: string | null;
2658
- isActive: boolean;
2659
- categoryId: string;
2660
- cabinNumber: string;
2661
- deckId: string | null;
2662
- position: string | null;
2663
- connectsTo: string | null;
2664
- }[];
2724
+ error: string;
2725
+ detail: string;
2665
2726
  };
2666
2727
  outputFormat: "json";
2667
- status: import("hono/utils/http-status").ContentfulStatusCode;
2668
- };
2669
- };
2670
- } & {
2671
- "/cabins/:cabinId": {
2672
- $put: {
2728
+ status: 400;
2729
+ } | {
2673
2730
  input: {
2674
2731
  param: {
2675
- cabinId: string;
2732
+ key: string;
2676
2733
  };
2677
2734
  };
2678
2735
  output: {
2679
2736
  error: string;
2680
2737
  };
2681
2738
  outputFormat: "json";
2682
- status: 404;
2739
+ status: 409;
2683
2740
  } | {
2684
2741
  input: {
2685
2742
  param: {
2686
- cabinId: string;
2743
+ key: string;
2687
2744
  };
2688
2745
  };
2689
2746
  output: {
2690
2747
  data: {
2691
2748
  id: string;
2749
+ name: string;
2692
2750
  createdAt: string;
2693
2751
  updatedAt: string;
2694
- notes: string | null;
2695
- isActive: boolean;
2696
- categoryId: string;
2697
- cabinNumber: string;
2698
- deckId: string | null;
2699
- position: string | null;
2700
- connectsTo: string | null;
2701
- };
2702
- };
2703
- outputFormat: "json";
2704
- status: import("hono/utils/http-status").ContentfulStatusCode;
2705
- };
2706
- };
2707
- } & {
2708
- "/search-index/bulk": {
2709
- $put: {
2710
- input: {};
2711
- output: {
2712
- data: {
2713
- upserted: number;
2714
- };
2715
- };
2716
- outputFormat: "json";
2717
- status: import("hono/utils/http-status").ContentfulStatusCode;
2718
- };
2719
- };
2720
- } & {
2721
- "/search-index/:crsiId": {
2722
- $delete: {
2723
- input: {
2724
- param: {
2725
- crsiId: string;
2726
- };
2727
- };
2728
- output: null;
2729
- outputFormat: "body";
2730
- status: 204;
2731
- } | {
2732
- input: {
2733
- param: {
2734
- crsiId: string;
2735
- };
2736
- };
2737
- output: {
2738
- error: string;
2739
- };
2740
- outputFormat: "json";
2741
- status: 404;
2742
- };
2743
- };
2744
- } & {
2745
- "/search-index/rebuild": {
2746
- $post: {
2747
- input: {};
2748
- output: {
2749
- data: {
2750
- localUpserted: number;
2751
- externalUpserted: number;
2752
- externalErrors: {
2753
- adapter: string;
2754
- error: string;
2755
- }[];
2756
- };
2752
+ description: string | null;
2753
+ cruiseId: string;
2754
+ kind: "other" | "naturalist" | "historian" | "photographer" | "lecturer" | "expert";
2755
+ title: string | null;
2756
+ sortOrder: number;
2757
+ bioImageUrl: string | null;
2758
+ }[];
2757
2759
  };
2758
2760
  outputFormat: "json";
2759
2761
  status: import("hono/utils/http-status").ContentfulStatusCode;
2760
2762
  };
2761
2763
  };
2762
- }, "/", "/search-index/rebuild">;
2764
+ }, "/", "/:key/enrichment/bulk">;
2763
2765
  export type CruiseAdminRoutes = typeof cruiseAdminRoutes;
2764
2766
  export {};
2765
2767
  //# sourceMappingURL=routes.d.ts.map