@voyant-travel/cruises 0.124.0 → 0.125.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.
@@ -0,0 +1,598 @@
1
+ DO $$ BEGIN
2
+ CREATE TYPE "public"."cruise_air_arrangement" AS ENUM('cruise_line', 'independent', 'none');
3
+ EXCEPTION WHEN duplicate_object THEN null;
4
+ END $$;--> statement-breakpoint
5
+ DO $$ BEGIN
6
+ CREATE TYPE "public"."cruise_booking_mode" AS ENUM('inquiry', 'reserve');
7
+ EXCEPTION WHEN duplicate_object THEN null;
8
+ END $$;--> statement-breakpoint
9
+ DO $$ BEGIN
10
+ CREATE TYPE "public"."cruise_cabin_room_type" AS ENUM('inside', 'oceanview', 'balcony', 'suite', 'penthouse', 'single');
11
+ EXCEPTION WHEN duplicate_object THEN null;
12
+ END $$;--> statement-breakpoint
13
+ DO $$ BEGIN
14
+ CREATE TYPE "public"."cruise_inclusion_kind" AS ENUM('meals', 'drinks', 'gratuities', 'transfers', 'excursions', 'wifi', 'other');
15
+ EXCEPTION WHEN duplicate_object THEN null;
16
+ END $$;--> statement-breakpoint
17
+ DO $$ BEGIN
18
+ CREATE TYPE "public"."cruise_media_type" AS ENUM('image', 'video', 'document');
19
+ EXCEPTION WHEN duplicate_object THEN null;
20
+ END $$;--> statement-breakpoint
21
+ DO $$ BEGIN
22
+ CREATE TYPE "public"."cruise_sailing_direction" AS ENUM('upstream', 'downstream', 'round_trip', 'one_way');
23
+ EXCEPTION WHEN duplicate_object THEN null;
24
+ END $$;--> statement-breakpoint
25
+ DO $$ BEGIN
26
+ CREATE TYPE "public"."cruise_source" AS ENUM('local', 'external');
27
+ EXCEPTION WHEN duplicate_object THEN null;
28
+ END $$;--> statement-breakpoint
29
+ DO $$ BEGIN
30
+ CREATE TYPE "public"."cruise_status" AS ENUM('draft', 'awaiting_review', 'live', 'archived');
31
+ EXCEPTION WHEN duplicate_object THEN null;
32
+ END $$;--> statement-breakpoint
33
+ DO $$ BEGIN
34
+ CREATE TYPE "public"."cruise_type" AS ENUM('ocean', 'river', 'expedition', 'coastal');
35
+ EXCEPTION WHEN duplicate_object THEN null;
36
+ END $$;--> statement-breakpoint
37
+ DO $$ BEGIN
38
+ CREATE TYPE "public"."cruise_voyage_group_kind" AS ENUM('combination', 'grand_voyage', 'world_cruise', 'cruise_tour');
39
+ EXCEPTION WHEN duplicate_object THEN null;
40
+ END $$;--> statement-breakpoint
41
+ DO $$ BEGIN
42
+ CREATE TYPE "public"."cruise_voyage_segment_kind" AS ENUM('cruise', 'land', 'hotel', 'transfer', 'rail', 'air', 'other');
43
+ EXCEPTION WHEN duplicate_object THEN null;
44
+ END $$;--> statement-breakpoint
45
+ DO $$ BEGIN
46
+ CREATE TYPE "public"."cruise_voyage_segment_role" AS ENUM('core', 'pre_extension', 'post_extension');
47
+ EXCEPTION WHEN duplicate_object THEN null;
48
+ END $$;--> statement-breakpoint
49
+ DO $$ BEGIN
50
+ CREATE TYPE "public"."cruise_enrichment_program_kind" AS ENUM('naturalist', 'historian', 'photographer', 'lecturer', 'expert', 'other');
51
+ EXCEPTION WHEN duplicate_object THEN null;
52
+ END $$;--> statement-breakpoint
53
+ DO $$ BEGIN
54
+ CREATE TYPE "public"."cruise_price_availability" AS ENUM('available', 'limited', 'on_request', 'wait_list', 'sold_out');
55
+ EXCEPTION WHEN duplicate_object THEN null;
56
+ END $$;--> statement-breakpoint
57
+ DO $$ BEGIN
58
+ CREATE TYPE "public"."cruise_price_component_direction" AS ENUM('addition', 'inclusion', 'credit');
59
+ EXCEPTION WHEN duplicate_object THEN null;
60
+ END $$;--> statement-breakpoint
61
+ DO $$ BEGIN
62
+ CREATE TYPE "public"."cruise_price_component_kind" AS ENUM('gratuity', 'onboard_credit', 'port_charge', 'tax', 'ncf', 'airfare', 'transfer', 'insurance');
63
+ EXCEPTION WHEN duplicate_object THEN null;
64
+ END $$;--> statement-breakpoint
65
+ DO $$ BEGIN
66
+ CREATE TYPE "public"."cruise_price_fare_variant" AS ENUM('cruise_only', 'air_inclusive');
67
+ EXCEPTION WHEN duplicate_object THEN null;
68
+ END $$;--> statement-breakpoint
69
+ DO $$ BEGIN
70
+ CREATE TYPE "public"."cruise_sailing_sales_status" AS ENUM('open', 'on_request', 'wait_list', 'sold_out', 'closed');
71
+ EXCEPTION WHEN duplicate_object THEN null;
72
+ END $$;--> statement-breakpoint
73
+ DO $$ BEGIN
74
+ CREATE TYPE "public"."cruise_ship_type" AS ENUM('ocean', 'river', 'expedition', 'yacht', 'sailing', 'coastal');
75
+ EXCEPTION WHEN duplicate_object THEN null;
76
+ END $$;--> statement-breakpoint
77
+ CREATE TABLE "booking_cruise_details" (
78
+ "booking_id" text PRIMARY KEY NOT NULL,
79
+ "source" "cruise_source" DEFAULT 'local' NOT NULL,
80
+ "source_provider" text,
81
+ "source_ref" jsonb,
82
+ "sailing_id" text,
83
+ "cabin_category_id" text,
84
+ "cabin_id" text,
85
+ "sailing_display_name" text,
86
+ "cabin_display_name" text,
87
+ "occupancy" smallint NOT NULL,
88
+ "fare_code" text,
89
+ "fare_variant" "cruise_price_fare_variant" DEFAULT 'cruise_only' NOT NULL,
90
+ "mode" "cruise_booking_mode" DEFAULT 'inquiry' NOT NULL,
91
+ "quoted_price_per_person" numeric(12, 2) NOT NULL,
92
+ "quoted_total_for_cabin" numeric(12, 2) NOT NULL,
93
+ "quoted_currency" char(3) NOT NULL,
94
+ "quoted_components_json" jsonb DEFAULT '[]'::jsonb,
95
+ "booking_terms_snapshot_json" jsonb,
96
+ "passenger_composition_snapshot_json" jsonb,
97
+ "connector_booking_ref" text,
98
+ "connector_status" text,
99
+ "air_arrangement" "cruise_air_arrangement",
100
+ "linked_flight_booking_id" text,
101
+ "notes" text,
102
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
103
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
104
+ );
105
+ --> statement-breakpoint
106
+ CREATE TABLE "booking_group_cruise_details" (
107
+ "booking_group_id" text PRIMARY KEY NOT NULL,
108
+ "source" "cruise_source" DEFAULT 'local' NOT NULL,
109
+ "source_provider" text,
110
+ "source_ref" jsonb,
111
+ "sailing_id" text,
112
+ "sailing_display_name" text,
113
+ "cabin_count" smallint NOT NULL,
114
+ "total_quoted_amount" numeric(12, 2) NOT NULL,
115
+ "quoted_currency" char(3) NOT NULL,
116
+ "connector_booking_ref" text,
117
+ "booking_terms_snapshot_json" jsonb,
118
+ "notes" text,
119
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
120
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
121
+ );
122
+ --> statement-breakpoint
123
+ CREATE TABLE "cruises_sourced_content" (
124
+ "entity_id" text NOT NULL,
125
+ "locale" text NOT NULL,
126
+ "market" text DEFAULT '*' NOT NULL,
127
+ "payload" jsonb NOT NULL,
128
+ "content_schema_version" text NOT NULL,
129
+ "returned_locale" text NOT NULL,
130
+ "machine_translated" boolean DEFAULT false NOT NULL,
131
+ "source_updated_at" timestamp with time zone,
132
+ "fetched_at" timestamp with time zone DEFAULT now() NOT NULL,
133
+ "fresh_until" timestamp with time zone,
134
+ "etag" text,
135
+ "fetch_status" text DEFAULT 'ok' NOT NULL,
136
+ "fetch_error" text,
137
+ CONSTRAINT "cruises_sourced_content_entity_id_locale_market_pk" PRIMARY KEY("entity_id","locale","market")
138
+ );
139
+ --> statement-breakpoint
140
+ CREATE TABLE "cruise_cabin_categories" (
141
+ "id" text PRIMARY KEY NOT NULL,
142
+ "ship_id" text NOT NULL,
143
+ "code" text NOT NULL,
144
+ "name" text NOT NULL,
145
+ "room_type" "cruise_cabin_room_type" NOT NULL,
146
+ "description" text,
147
+ "min_occupancy" smallint DEFAULT 1 NOT NULL,
148
+ "max_occupancy" smallint NOT NULL,
149
+ "square_feet" numeric(8, 2),
150
+ "wheelchair_accessible" boolean DEFAULT false NOT NULL,
151
+ "amenities" jsonb DEFAULT '[]'::jsonb,
152
+ "feature_codes" jsonb DEFAULT '[]'::jsonb,
153
+ "bed_configurations" jsonb DEFAULT '[]'::jsonb,
154
+ "accessibility_features" jsonb DEFAULT '[]'::jsonb,
155
+ "view_type" text,
156
+ "images" jsonb DEFAULT '[]'::jsonb,
157
+ "floorplan_images" jsonb DEFAULT '[]'::jsonb,
158
+ "grade_codes" jsonb DEFAULT '[]'::jsonb,
159
+ "external_refs" jsonb DEFAULT '{}'::jsonb,
160
+ "customer_payment_policy" jsonb,
161
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
162
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
163
+ );
164
+ --> statement-breakpoint
165
+ CREATE TABLE "cruise_cabins" (
166
+ "id" text PRIMARY KEY NOT NULL,
167
+ "category_id" text NOT NULL,
168
+ "cabin_number" text NOT NULL,
169
+ "deck_id" text,
170
+ "position" text,
171
+ "connects_to" text,
172
+ "notes" text,
173
+ "is_active" boolean DEFAULT true NOT NULL,
174
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
175
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
176
+ );
177
+ --> statement-breakpoint
178
+ CREATE TABLE "cruise_decks" (
179
+ "id" text PRIMARY KEY NOT NULL,
180
+ "ship_id" text NOT NULL,
181
+ "name" text NOT NULL,
182
+ "level" smallint,
183
+ "plan_image_url" text,
184
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
185
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
186
+ );
187
+ --> statement-breakpoint
188
+ CREATE TABLE "cruise_ships" (
189
+ "id" text PRIMARY KEY NOT NULL,
190
+ "line_supplier_id" text,
191
+ "name" text NOT NULL,
192
+ "slug" text NOT NULL,
193
+ "ship_type" "cruise_ship_type" NOT NULL,
194
+ "capacity_guests" integer,
195
+ "capacity_crew" integer,
196
+ "cabin_count" integer,
197
+ "deck_count" integer,
198
+ "length_meters" numeric(8, 2),
199
+ "cruising_speed_knots" numeric(5, 2),
200
+ "year_built" integer,
201
+ "year_refurbished" integer,
202
+ "imo" text,
203
+ "description" text,
204
+ "deck_plan_url" text,
205
+ "gallery" jsonb DEFAULT '[]'::jsonb,
206
+ "amenities" jsonb DEFAULT '{}'::jsonb,
207
+ "external_refs" jsonb DEFAULT '{}'::jsonb,
208
+ "is_active" boolean DEFAULT true NOT NULL,
209
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
210
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
211
+ );
212
+ --> statement-breakpoint
213
+ CREATE TABLE "cruise_enrichment_programs" (
214
+ "id" text PRIMARY KEY NOT NULL,
215
+ "cruise_id" text NOT NULL,
216
+ "kind" "cruise_enrichment_program_kind" NOT NULL,
217
+ "name" text NOT NULL,
218
+ "title" text,
219
+ "description" text,
220
+ "bio_image_url" text,
221
+ "sort_order" smallint DEFAULT 0 NOT NULL,
222
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
223
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
224
+ );
225
+ --> statement-breakpoint
226
+ CREATE TABLE "cruise_inclusions" (
227
+ "id" text PRIMARY KEY NOT NULL,
228
+ "cruise_id" text NOT NULL,
229
+ "kind" "cruise_inclusion_kind" NOT NULL,
230
+ "label" text NOT NULL,
231
+ "description" text,
232
+ "sort_order" smallint DEFAULT 0 NOT NULL,
233
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
234
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
235
+ );
236
+ --> statement-breakpoint
237
+ CREATE TABLE "cruise_media" (
238
+ "id" text PRIMARY KEY NOT NULL,
239
+ "cruise_id" text NOT NULL,
240
+ "sailing_id" text,
241
+ "media_type" "cruise_media_type" NOT NULL,
242
+ "name" text NOT NULL,
243
+ "url" text NOT NULL,
244
+ "storage_key" text,
245
+ "mime_type" text,
246
+ "file_size" integer,
247
+ "alt_text" text,
248
+ "sort_order" integer DEFAULT 0 NOT NULL,
249
+ "is_cover" boolean DEFAULT false NOT NULL,
250
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
251
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
252
+ );
253
+ --> statement-breakpoint
254
+ CREATE TABLE "cruise_sailings" (
255
+ "id" text PRIMARY KEY NOT NULL,
256
+ "cruise_id" text NOT NULL,
257
+ "ship_id" text NOT NULL,
258
+ "departure_date" date NOT NULL,
259
+ "return_date" date NOT NULL,
260
+ "embark_port_facility_id" text,
261
+ "embark_port_canonical_place_id" text,
262
+ "disembark_port_facility_id" text,
263
+ "disembark_port_canonical_place_id" text,
264
+ "direction" "cruise_sailing_direction",
265
+ "availability_note" text,
266
+ "is_charter" boolean DEFAULT false NOT NULL,
267
+ "sales_status" "cruise_sailing_sales_status" DEFAULT 'open' NOT NULL,
268
+ "external_refs" jsonb DEFAULT '{}'::jsonb,
269
+ "customer_payment_policy" jsonb,
270
+ "last_synced_at" timestamp with time zone,
271
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
272
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
273
+ );
274
+ --> statement-breakpoint
275
+ CREATE TABLE "cruise_voyage_group_segments" (
276
+ "id" text PRIMARY KEY NOT NULL,
277
+ "voyage_group_id" text NOT NULL,
278
+ "sort_order" integer NOT NULL,
279
+ "segment_kind" "cruise_voyage_segment_kind" NOT NULL,
280
+ "segment_role" "cruise_voyage_segment_role" DEFAULT 'core' NOT NULL,
281
+ "title" text NOT NULL,
282
+ "description" text,
283
+ "cruise_id" text,
284
+ "sailing_id" text,
285
+ "start_day" integer,
286
+ "end_day" integer,
287
+ "start_date" date,
288
+ "end_date" date,
289
+ "embark_port_facility_id" text,
290
+ "embark_port_canonical_place_id" text,
291
+ "disembark_port_facility_id" text,
292
+ "disembark_port_canonical_place_id" text,
293
+ "nights" integer,
294
+ "external_refs" jsonb DEFAULT '{}'::jsonb,
295
+ "metadata" jsonb DEFAULT '{}'::jsonb,
296
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
297
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
298
+ );
299
+ --> statement-breakpoint
300
+ CREATE TABLE "cruise_voyage_groups" (
301
+ "id" text PRIMARY KEY NOT NULL,
302
+ "slug" text NOT NULL,
303
+ "name" text NOT NULL,
304
+ "group_kind" "cruise_voyage_group_kind" NOT NULL,
305
+ "line_supplier_id" text,
306
+ "nights" integer NOT NULL,
307
+ "embark_port_facility_id" text,
308
+ "embark_port_canonical_place_id" text,
309
+ "disembark_port_facility_id" text,
310
+ "disembark_port_canonical_place_id" text,
311
+ "description" text,
312
+ "short_description" text,
313
+ "highlights" jsonb DEFAULT '[]'::jsonb,
314
+ "regions" jsonb DEFAULT '[]'::jsonb,
315
+ "themes" jsonb DEFAULT '[]'::jsonb,
316
+ "hero_image_url" text,
317
+ "map_image_url" text,
318
+ "status" "cruise_status" DEFAULT 'draft' NOT NULL,
319
+ "lowest_price_cached" numeric(12, 2),
320
+ "lowest_price_currency_cached" text,
321
+ "earliest_departure_cached" date,
322
+ "latest_departure_cached" date,
323
+ "external_refs" jsonb DEFAULT '{}'::jsonb,
324
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
325
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
326
+ );
327
+ --> statement-breakpoint
328
+ CREATE TABLE "cruises" (
329
+ "id" text PRIMARY KEY NOT NULL,
330
+ "slug" text NOT NULL,
331
+ "name" text NOT NULL,
332
+ "cruise_type" "cruise_type" NOT NULL,
333
+ "line_supplier_id" text,
334
+ "default_ship_id" text,
335
+ "nights" integer NOT NULL,
336
+ "embark_port_facility_id" text,
337
+ "embark_port_canonical_place_id" text,
338
+ "disembark_port_facility_id" text,
339
+ "disembark_port_canonical_place_id" text,
340
+ "description" text,
341
+ "short_description" text,
342
+ "highlights" jsonb DEFAULT '[]'::jsonb,
343
+ "inclusions_html" text,
344
+ "exclusions_html" text,
345
+ "region_ids" jsonb DEFAULT '[]'::jsonb,
346
+ "waterway_ids" jsonb DEFAULT '[]'::jsonb,
347
+ "port_ids" jsonb DEFAULT '[]'::jsonb,
348
+ "country_iso" jsonb DEFAULT '[]'::jsonb,
349
+ "regions" jsonb DEFAULT '[]'::jsonb,
350
+ "waterways" jsonb DEFAULT '[]'::jsonb,
351
+ "ports" jsonb DEFAULT '[]'::jsonb,
352
+ "countries" jsonb DEFAULT '[]'::jsonb,
353
+ "themes" jsonb DEFAULT '[]'::jsonb,
354
+ "hero_image_url" text,
355
+ "map_image_url" text,
356
+ "status" "cruise_status" DEFAULT 'draft' NOT NULL,
357
+ "lowest_price_cached" numeric(12, 2),
358
+ "lowest_price_currency_cached" text,
359
+ "earliest_departure_cached" date,
360
+ "latest_departure_cached" date,
361
+ "external_refs" jsonb DEFAULT '{}'::jsonb,
362
+ "customer_payment_policy" jsonb,
363
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
364
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
365
+ );
366
+ --> statement-breakpoint
367
+ CREATE TABLE "cruise_days" (
368
+ "id" text PRIMARY KEY NOT NULL,
369
+ "cruise_id" text NOT NULL,
370
+ "day_number" smallint NOT NULL,
371
+ "title" text,
372
+ "description" text,
373
+ "port_facility_id" text,
374
+ "port_canonical_place_id" text,
375
+ "arrival_time" time,
376
+ "departure_time" time,
377
+ "is_overnight" boolean DEFAULT false NOT NULL,
378
+ "is_sea_day" boolean DEFAULT false NOT NULL,
379
+ "is_expedition_landing" boolean DEFAULT false NOT NULL,
380
+ "meals" jsonb DEFAULT '{}'::jsonb,
381
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
382
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
383
+ );
384
+ --> statement-breakpoint
385
+ CREATE TABLE "cruise_sailing_days" (
386
+ "id" text PRIMARY KEY NOT NULL,
387
+ "sailing_id" text NOT NULL,
388
+ "day_number" smallint NOT NULL,
389
+ "title" text,
390
+ "description" text,
391
+ "port_facility_id" text,
392
+ "port_canonical_place_id" text,
393
+ "arrival_time" time,
394
+ "departure_time" time,
395
+ "is_overnight" boolean,
396
+ "is_sea_day" boolean,
397
+ "is_expedition_landing" boolean,
398
+ "is_skipped" boolean DEFAULT false NOT NULL,
399
+ "meals" jsonb,
400
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
401
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
402
+ );
403
+ --> statement-breakpoint
404
+ CREATE TABLE "cruise_price_components" (
405
+ "id" text PRIMARY KEY NOT NULL,
406
+ "price_id" text NOT NULL,
407
+ "kind" "cruise_price_component_kind" NOT NULL,
408
+ "label" text,
409
+ "amount" numeric(12, 2) NOT NULL,
410
+ "currency" text NOT NULL,
411
+ "direction" "cruise_price_component_direction" NOT NULL,
412
+ "per_person" boolean DEFAULT true NOT NULL,
413
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
414
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
415
+ );
416
+ --> statement-breakpoint
417
+ CREATE TABLE "cruise_prices" (
418
+ "id" text PRIMARY KEY NOT NULL,
419
+ "sailing_id" text NOT NULL,
420
+ "cabin_category_id" text NOT NULL,
421
+ "occupancy" smallint NOT NULL,
422
+ "fare_code" text,
423
+ "fare_code_name" text,
424
+ "fare_variant" "cruise_price_fare_variant" DEFAULT 'cruise_only' NOT NULL,
425
+ "currency" text NOT NULL,
426
+ "price_per_person" numeric(12, 2) NOT NULL,
427
+ "original_price_per_person" numeric(12, 2),
428
+ "second_guest_price_per_person" numeric(12, 2),
429
+ "single_price_per_person" numeric(12, 2),
430
+ "single_supplement_percent" numeric(5, 2),
431
+ "availability" "cruise_price_availability" DEFAULT 'available' NOT NULL,
432
+ "availability_count" integer,
433
+ "price_catalog_id" text,
434
+ "price_schedule_id" text,
435
+ "booking_deadline" date,
436
+ "early_booking_deadline" date,
437
+ "early_booking_bonus_description" text,
438
+ "requires_request" boolean DEFAULT false NOT NULL,
439
+ "notes" text,
440
+ "external_refs" jsonb DEFAULT '{}'::jsonb,
441
+ "last_synced_at" timestamp with time zone,
442
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
443
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
444
+ );
445
+ --> statement-breakpoint
446
+ CREATE TABLE "cruise_search_index" (
447
+ "id" text PRIMARY KEY NOT NULL,
448
+ "source" "cruise_source" NOT NULL,
449
+ "source_provider" text,
450
+ "source_ref" jsonb,
451
+ "local_cruise_id" text,
452
+ "slug" text NOT NULL,
453
+ "name" text NOT NULL,
454
+ "cruise_type" "cruise_type" NOT NULL,
455
+ "line_name" text NOT NULL,
456
+ "ship_name" text NOT NULL,
457
+ "nights" integer NOT NULL,
458
+ "embark_port_name" text,
459
+ "embark_port_canonical_place_id" text,
460
+ "disembark_port_name" text,
461
+ "disembark_port_canonical_place_id" text,
462
+ "region_ids" jsonb DEFAULT '[]'::jsonb,
463
+ "waterway_ids" jsonb DEFAULT '[]'::jsonb,
464
+ "port_ids" jsonb DEFAULT '[]'::jsonb,
465
+ "country_iso" jsonb DEFAULT '[]'::jsonb,
466
+ "regions" jsonb DEFAULT '[]'::jsonb,
467
+ "waterways" jsonb DEFAULT '[]'::jsonb,
468
+ "ports" jsonb DEFAULT '[]'::jsonb,
469
+ "countries" jsonb DEFAULT '[]'::jsonb,
470
+ "themes" jsonb DEFAULT '[]'::jsonb,
471
+ "earliest_departure" date,
472
+ "latest_departure" date,
473
+ "departure_count" integer,
474
+ "lowest_price_cents" integer,
475
+ "lowest_price_currency" char(3),
476
+ "sales_status" text,
477
+ "hero_image_url" text,
478
+ "refreshed_at" timestamp with time zone DEFAULT now() NOT NULL,
479
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
480
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
481
+ );
482
+ --> statement-breakpoint
483
+ ALTER TABLE "cruise_cabin_categories" ADD CONSTRAINT "cruise_cabin_categories_ship_id_cruise_ships_id_fk" FOREIGN KEY ("ship_id") REFERENCES "public"."cruise_ships"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
484
+ ALTER TABLE "cruise_cabins" ADD CONSTRAINT "cruise_cabins_category_id_cruise_cabin_categories_id_fk" FOREIGN KEY ("category_id") REFERENCES "public"."cruise_cabin_categories"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
485
+ ALTER TABLE "cruise_cabins" ADD CONSTRAINT "cruise_cabins_deck_id_cruise_decks_id_fk" FOREIGN KEY ("deck_id") REFERENCES "public"."cruise_decks"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
486
+ ALTER TABLE "cruise_decks" ADD CONSTRAINT "cruise_decks_ship_id_cruise_ships_id_fk" FOREIGN KEY ("ship_id") REFERENCES "public"."cruise_ships"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
487
+ ALTER TABLE "cruise_enrichment_programs" ADD CONSTRAINT "cruise_enrichment_programs_cruise_id_cruises_id_fk" FOREIGN KEY ("cruise_id") REFERENCES "public"."cruises"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
488
+ ALTER TABLE "cruise_inclusions" ADD CONSTRAINT "cruise_inclusions_cruise_id_cruises_id_fk" FOREIGN KEY ("cruise_id") REFERENCES "public"."cruises"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
489
+ ALTER TABLE "cruise_media" ADD CONSTRAINT "cruise_media_cruise_id_cruises_id_fk" FOREIGN KEY ("cruise_id") REFERENCES "public"."cruises"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
490
+ ALTER TABLE "cruise_media" ADD CONSTRAINT "cruise_media_sailing_id_cruise_sailings_id_fk" FOREIGN KEY ("sailing_id") REFERENCES "public"."cruise_sailings"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
491
+ ALTER TABLE "cruise_sailings" ADD CONSTRAINT "cruise_sailings_cruise_id_cruises_id_fk" FOREIGN KEY ("cruise_id") REFERENCES "public"."cruises"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
492
+ ALTER TABLE "cruise_sailings" ADD CONSTRAINT "cruise_sailings_ship_id_cruise_ships_id_fk" FOREIGN KEY ("ship_id") REFERENCES "public"."cruise_ships"("id") ON DELETE restrict ON UPDATE no action;--> statement-breakpoint
493
+ ALTER TABLE "cruise_voyage_group_segments" ADD CONSTRAINT "cruise_voyage_group_segments_voyage_group_id_cruise_voyage_groups_id_fk" FOREIGN KEY ("voyage_group_id") REFERENCES "public"."cruise_voyage_groups"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
494
+ ALTER TABLE "cruise_voyage_group_segments" ADD CONSTRAINT "cruise_voyage_group_segments_cruise_id_cruises_id_fk" FOREIGN KEY ("cruise_id") REFERENCES "public"."cruises"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
495
+ ALTER TABLE "cruise_voyage_group_segments" ADD CONSTRAINT "cruise_voyage_group_segments_sailing_id_cruise_sailings_id_fk" FOREIGN KEY ("sailing_id") REFERENCES "public"."cruise_sailings"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
496
+ ALTER TABLE "cruises" ADD CONSTRAINT "cruises_default_ship_id_cruise_ships_id_fk" FOREIGN KEY ("default_ship_id") REFERENCES "public"."cruise_ships"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
497
+ ALTER TABLE "cruise_days" ADD CONSTRAINT "cruise_days_cruise_id_cruises_id_fk" FOREIGN KEY ("cruise_id") REFERENCES "public"."cruises"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
498
+ ALTER TABLE "cruise_sailing_days" ADD CONSTRAINT "cruise_sailing_days_sailing_id_cruise_sailings_id_fk" FOREIGN KEY ("sailing_id") REFERENCES "public"."cruise_sailings"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
499
+ ALTER TABLE "cruise_price_components" ADD CONSTRAINT "cruise_price_components_price_id_cruise_prices_id_fk" FOREIGN KEY ("price_id") REFERENCES "public"."cruise_prices"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
500
+ ALTER TABLE "cruise_prices" ADD CONSTRAINT "cruise_prices_sailing_id_cruise_sailings_id_fk" FOREIGN KEY ("sailing_id") REFERENCES "public"."cruise_sailings"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
501
+ ALTER TABLE "cruise_prices" ADD CONSTRAINT "cruise_prices_cabin_category_id_cruise_cabin_categories_id_fk" FOREIGN KEY ("cabin_category_id") REFERENCES "public"."cruise_cabin_categories"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
502
+ ALTER TABLE "cruise_search_index" ADD CONSTRAINT "cruise_search_index_local_cruise_id_cruises_id_fk" FOREIGN KEY ("local_cruise_id") REFERENCES "public"."cruises"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
503
+ CREATE INDEX "idx_bcd_source" ON "booking_cruise_details" USING btree ("source");--> statement-breakpoint
504
+ CREATE INDEX "idx_bcd_sailing" ON "booking_cruise_details" USING btree ("sailing_id");--> statement-breakpoint
505
+ CREATE INDEX "idx_bcd_cabin_category" ON "booking_cruise_details" USING btree ("cabin_category_id");--> statement-breakpoint
506
+ CREATE INDEX "idx_bcd_connector_ref" ON "booking_cruise_details" USING btree ("connector_booking_ref");--> statement-breakpoint
507
+ CREATE INDEX "idx_bcd_provider" ON "booking_cruise_details" USING btree ("source_provider");--> statement-breakpoint
508
+ CREATE INDEX "idx_bcd_air_arrangement" ON "booking_cruise_details" USING btree ("air_arrangement");--> statement-breakpoint
509
+ CREATE INDEX "idx_bgcd_source" ON "booking_group_cruise_details" USING btree ("source");--> statement-breakpoint
510
+ CREATE INDEX "idx_bgcd_sailing" ON "booking_group_cruise_details" USING btree ("sailing_id");--> statement-breakpoint
511
+ CREATE INDEX "idx_bgcd_connector_ref" ON "booking_group_cruise_details" USING btree ("connector_booking_ref");--> statement-breakpoint
512
+ CREATE INDEX "idx_bgcd_provider" ON "booking_group_cruise_details" USING btree ("source_provider");--> statement-breakpoint
513
+ CREATE INDEX "cruises_sourced_content_locale_fresh_idx" ON "cruises_sourced_content" USING btree ("locale","fresh_until");--> statement-breakpoint
514
+ CREATE INDEX "cruises_sourced_content_returned_locale_idx" ON "cruises_sourced_content" USING btree ("entity_id","returned_locale");--> statement-breakpoint
515
+ CREATE INDEX "cruises_sourced_content_schema_version_idx" ON "cruises_sourced_content" USING btree ("content_schema_version");--> statement-breakpoint
516
+ CREATE UNIQUE INDEX "uidx_cruise_cabin_categories_ship_code" ON "cruise_cabin_categories" USING btree ("ship_id","code");--> statement-breakpoint
517
+ CREATE INDEX "idx_cruise_cabin_categories_ship_type" ON "cruise_cabin_categories" USING btree ("ship_id","room_type");--> statement-breakpoint
518
+ CREATE INDEX "idx_cruise_cabin_categories_features_gin" ON "cruise_cabin_categories" USING gin ("feature_codes");--> statement-breakpoint
519
+ CREATE INDEX "idx_cruise_cabin_categories_beds_gin" ON "cruise_cabin_categories" USING gin ("bed_configurations");--> statement-breakpoint
520
+ CREATE INDEX "idx_cruise_cabin_categories_accessibility_gin" ON "cruise_cabin_categories" USING gin ("accessibility_features");--> statement-breakpoint
521
+ CREATE INDEX "idx_cruise_cabin_categories_view_type" ON "cruise_cabin_categories" USING btree ("view_type");--> statement-breakpoint
522
+ CREATE UNIQUE INDEX "uidx_cruise_cabins_category_number" ON "cruise_cabins" USING btree ("category_id","cabin_number");--> statement-breakpoint
523
+ CREATE INDEX "idx_cruise_cabins_deck" ON "cruise_cabins" USING btree ("deck_id");--> statement-breakpoint
524
+ CREATE INDEX "idx_cruise_cabins_active" ON "cruise_cabins" USING btree ("is_active");--> statement-breakpoint
525
+ CREATE INDEX "idx_cruise_decks_ship_level" ON "cruise_decks" USING btree ("ship_id","level");--> statement-breakpoint
526
+ CREATE UNIQUE INDEX "uidx_cruise_decks_ship_name" ON "cruise_decks" USING btree ("ship_id","name");--> statement-breakpoint
527
+ CREATE UNIQUE INDEX "uidx_cruise_ships_slug" ON "cruise_ships" USING btree ("slug");--> statement-breakpoint
528
+ CREATE UNIQUE INDEX "uidx_cruise_ships_imo" ON "cruise_ships" USING btree ("imo");--> statement-breakpoint
529
+ CREATE INDEX "idx_cruise_ships_supplier_active" ON "cruise_ships" USING btree ("line_supplier_id","is_active");--> statement-breakpoint
530
+ CREATE INDEX "idx_cruise_ships_type_active" ON "cruise_ships" USING btree ("ship_type","is_active");--> statement-breakpoint
531
+ CREATE INDEX "idx_cruise_enrichment_programs_cruise_kind_sort" ON "cruise_enrichment_programs" USING btree ("cruise_id","kind","sort_order");--> statement-breakpoint
532
+ CREATE INDEX "idx_cruise_inclusions_cruise_kind_sort" ON "cruise_inclusions" USING btree ("cruise_id","kind","sort_order");--> statement-breakpoint
533
+ CREATE INDEX "idx_cruise_media_cruise" ON "cruise_media" USING btree ("cruise_id");--> statement-breakpoint
534
+ CREATE INDEX "idx_cruise_media_sailing" ON "cruise_media" USING btree ("sailing_id");--> statement-breakpoint
535
+ CREATE INDEX "idx_cruise_media_cruise_cover_sort" ON "cruise_media" USING btree ("cruise_id","is_cover","sort_order");--> statement-breakpoint
536
+ CREATE INDEX "idx_cruise_sailings_cruise_departure" ON "cruise_sailings" USING btree ("cruise_id","departure_date");--> statement-breakpoint
537
+ CREATE INDEX "idx_cruise_sailings_ship_departure" ON "cruise_sailings" USING btree ("ship_id","departure_date");--> statement-breakpoint
538
+ CREATE INDEX "idx_cruise_sailings_status_departure" ON "cruise_sailings" USING btree ("sales_status","departure_date");--> statement-breakpoint
539
+ CREATE INDEX "idx_cruise_sailings_embark_place" ON "cruise_sailings" USING btree ("embark_port_canonical_place_id");--> statement-breakpoint
540
+ CREATE INDEX "idx_cruise_sailings_disembark_place" ON "cruise_sailings" USING btree ("disembark_port_canonical_place_id");--> statement-breakpoint
541
+ CREATE UNIQUE INDEX "uidx_cruise_sailings_cruise_date_ship" ON "cruise_sailings" USING btree ("cruise_id","departure_date","ship_id");--> statement-breakpoint
542
+ CREATE UNIQUE INDEX "uidx_cruise_voyage_segments_group_sort" ON "cruise_voyage_group_segments" USING btree ("voyage_group_id","sort_order");--> statement-breakpoint
543
+ CREATE INDEX "idx_cruise_voyage_segments_group_role" ON "cruise_voyage_group_segments" USING btree ("voyage_group_id","segment_role");--> statement-breakpoint
544
+ CREATE INDEX "idx_cruise_voyage_segments_cruise" ON "cruise_voyage_group_segments" USING btree ("cruise_id");--> statement-breakpoint
545
+ CREATE INDEX "idx_cruise_voyage_segments_sailing" ON "cruise_voyage_group_segments" USING btree ("sailing_id");--> statement-breakpoint
546
+ CREATE INDEX "idx_cruise_voyage_segments_embark_place" ON "cruise_voyage_group_segments" USING btree ("embark_port_canonical_place_id");--> statement-breakpoint
547
+ CREATE INDEX "idx_cruise_voyage_segments_disembark_place" ON "cruise_voyage_group_segments" USING btree ("disembark_port_canonical_place_id");--> statement-breakpoint
548
+ CREATE UNIQUE INDEX "uidx_cruise_voyage_groups_slug" ON "cruise_voyage_groups" USING btree ("slug");--> statement-breakpoint
549
+ CREATE INDEX "idx_cruise_voyage_groups_kind_status" ON "cruise_voyage_groups" USING btree ("group_kind","status");--> statement-breakpoint
550
+ CREATE INDEX "idx_cruise_voyage_groups_supplier_status" ON "cruise_voyage_groups" USING btree ("line_supplier_id","status");--> statement-breakpoint
551
+ CREATE INDEX "idx_cruise_voyage_groups_embark_place" ON "cruise_voyage_groups" USING btree ("embark_port_canonical_place_id");--> statement-breakpoint
552
+ CREATE INDEX "idx_cruise_voyage_groups_disembark_place" ON "cruise_voyage_groups" USING btree ("disembark_port_canonical_place_id");--> statement-breakpoint
553
+ CREATE INDEX "idx_cruise_voyage_groups_earliest_status" ON "cruise_voyage_groups" USING btree ("earliest_departure_cached","status");--> statement-breakpoint
554
+ CREATE INDEX "idx_cruise_voyage_groups_status_created" ON "cruise_voyage_groups" USING btree ("status","created_at");--> statement-breakpoint
555
+ CREATE UNIQUE INDEX "uidx_cruises_slug" ON "cruises" USING btree ("slug");--> statement-breakpoint
556
+ CREATE INDEX "idx_cruises_type_status" ON "cruises" USING btree ("cruise_type","status");--> statement-breakpoint
557
+ CREATE INDEX "idx_cruises_supplier_status" ON "cruises" USING btree ("line_supplier_id","status");--> statement-breakpoint
558
+ CREATE INDEX "idx_cruises_embark_place" ON "cruises" USING btree ("embark_port_canonical_place_id");--> statement-breakpoint
559
+ CREATE INDEX "idx_cruises_disembark_place" ON "cruises" USING btree ("disembark_port_canonical_place_id");--> statement-breakpoint
560
+ CREATE INDEX "idx_cruises_region_ids_gin" ON "cruises" USING gin ("region_ids");--> statement-breakpoint
561
+ CREATE INDEX "idx_cruises_waterway_ids_gin" ON "cruises" USING gin ("waterway_ids");--> statement-breakpoint
562
+ CREATE INDEX "idx_cruises_port_ids_gin" ON "cruises" USING gin ("port_ids");--> statement-breakpoint
563
+ CREATE INDEX "idx_cruises_country_iso_gin" ON "cruises" USING gin ("country_iso");--> statement-breakpoint
564
+ CREATE INDEX "idx_cruises_waterways_gin" ON "cruises" USING gin ("waterways");--> statement-breakpoint
565
+ CREATE INDEX "idx_cruises_ports_gin" ON "cruises" USING gin ("ports");--> statement-breakpoint
566
+ CREATE INDEX "idx_cruises_countries_gin" ON "cruises" USING gin ("countries");--> statement-breakpoint
567
+ CREATE INDEX "idx_cruises_earliest_departure_status" ON "cruises" USING btree ("earliest_departure_cached","status");--> statement-breakpoint
568
+ CREATE INDEX "idx_cruises_status_created" ON "cruises" USING btree ("status","created_at");--> statement-breakpoint
569
+ CREATE UNIQUE INDEX "uidx_cruise_days_cruise_day" ON "cruise_days" USING btree ("cruise_id","day_number");--> statement-breakpoint
570
+ CREATE INDEX "idx_cruise_days_cruise" ON "cruise_days" USING btree ("cruise_id");--> statement-breakpoint
571
+ CREATE INDEX "idx_cruise_days_port_place" ON "cruise_days" USING btree ("port_canonical_place_id");--> statement-breakpoint
572
+ CREATE UNIQUE INDEX "uidx_cruise_sailing_days_sailing_day" ON "cruise_sailing_days" USING btree ("sailing_id","day_number");--> statement-breakpoint
573
+ CREATE INDEX "idx_cruise_sailing_days_sailing" ON "cruise_sailing_days" USING btree ("sailing_id");--> statement-breakpoint
574
+ CREATE INDEX "idx_cruise_sailing_days_port_place" ON "cruise_sailing_days" USING btree ("port_canonical_place_id");--> statement-breakpoint
575
+ CREATE INDEX "idx_cruise_price_components_price" ON "cruise_price_components" USING btree ("price_id");--> statement-breakpoint
576
+ CREATE INDEX "idx_cruise_price_components_price_kind" ON "cruise_price_components" USING btree ("price_id","kind");--> statement-breakpoint
577
+ CREATE INDEX "idx_cruise_prices_lookup" ON "cruise_prices" USING btree ("sailing_id","cabin_category_id","occupancy","fare_code","fare_variant");--> statement-breakpoint
578
+ CREATE INDEX "idx_cruise_prices_lowest" ON "cruise_prices" USING btree ("sailing_id","availability","price_per_person");--> statement-breakpoint
579
+ CREATE INDEX "idx_cruise_prices_catalog" ON "cruise_prices" USING btree ("price_catalog_id");--> statement-breakpoint
580
+ CREATE INDEX "idx_cruise_prices_schedule" ON "cruise_prices" USING btree ("price_schedule_id");--> statement-breakpoint
581
+ CREATE UNIQUE INDEX "uidx_cruise_prices_standing" ON "cruise_prices" USING btree ("sailing_id","cabin_category_id","occupancy","fare_code","fare_variant") WHERE "cruise_prices"."price_schedule_id" IS NULL;--> statement-breakpoint
582
+ CREATE UNIQUE INDEX "uidx_cruise_search_index_slug" ON "cruise_search_index" USING btree ("slug");--> statement-breakpoint
583
+ CREATE INDEX "idx_cruise_search_index_source_refreshed" ON "cruise_search_index" USING btree ("source","refreshed_at");--> statement-breakpoint
584
+ CREATE INDEX "idx_cruise_search_index_type_price" ON "cruise_search_index" USING btree ("cruise_type","lowest_price_cents");--> statement-breakpoint
585
+ CREATE INDEX "idx_cruise_search_index_earliest_departure" ON "cruise_search_index" USING btree ("earliest_departure");--> statement-breakpoint
586
+ CREATE INDEX "idx_cruise_search_index_latest_departure" ON "cruise_search_index" USING btree ("latest_departure");--> statement-breakpoint
587
+ CREATE INDEX "idx_cruise_search_index_embark_place" ON "cruise_search_index" USING btree ("embark_port_canonical_place_id");--> statement-breakpoint
588
+ CREATE INDEX "idx_cruise_search_index_disembark_place" ON "cruise_search_index" USING btree ("disembark_port_canonical_place_id");--> statement-breakpoint
589
+ CREATE INDEX "idx_cruise_search_index_region_ids_gin" ON "cruise_search_index" USING gin ("region_ids");--> statement-breakpoint
590
+ CREATE INDEX "idx_cruise_search_index_waterway_ids_gin" ON "cruise_search_index" USING gin ("waterway_ids");--> statement-breakpoint
591
+ CREATE INDEX "idx_cruise_search_index_port_ids_gin" ON "cruise_search_index" USING gin ("port_ids");--> statement-breakpoint
592
+ CREATE INDEX "idx_cruise_search_index_country_iso_gin" ON "cruise_search_index" USING gin ("country_iso");--> statement-breakpoint
593
+ CREATE INDEX "idx_cruise_search_index_regions_gin" ON "cruise_search_index" USING gin ("regions");--> statement-breakpoint
594
+ CREATE INDEX "idx_cruise_search_index_waterways_gin" ON "cruise_search_index" USING gin ("waterways");--> statement-breakpoint
595
+ CREATE INDEX "idx_cruise_search_index_ports_gin" ON "cruise_search_index" USING gin ("ports");--> statement-breakpoint
596
+ CREATE INDEX "idx_cruise_search_index_countries_gin" ON "cruise_search_index" USING gin ("countries");--> statement-breakpoint
597
+ CREATE INDEX "idx_cruise_search_index_themes_gin" ON "cruise_search_index" USING gin ("themes");--> statement-breakpoint
598
+ CREATE UNIQUE INDEX "uidx_cruise_search_index_external" ON "cruise_search_index" USING btree ("source_provider","source_ref") WHERE "cruise_search_index"."source" = 'external';
@@ -0,0 +1,13 @@
1
+ {
2
+ "version": "7",
3
+ "dialect": "postgresql",
4
+ "entries": [
5
+ {
6
+ "idx": 0,
7
+ "version": "7",
8
+ "when": 1781947496977,
9
+ "tag": "0000_cruises_baseline",
10
+ "breakpoints": true
11
+ }
12
+ ]
13
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voyant-travel/cruises",
3
- "version": "0.124.0",
3
+ "version": "0.125.1",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -104,21 +104,24 @@
104
104
  "drizzle-orm": "^0.45.2",
105
105
  "hono": "^4.12.10",
106
106
  "zod": "^4.3.6",
107
- "@voyant-travel/bookings": "^0.125.0",
108
107
  "@voyant-travel/core": "^0.110.0",
109
- "@voyant-travel/db": "^0.108.3",
108
+ "@voyant-travel/bookings": "^0.126.0",
109
+ "@voyant-travel/db": "^0.108.4",
110
+ "@voyant-travel/catalog": "^0.124.1",
110
111
  "@voyant-travel/hono": "^0.112.2",
111
- "@voyant-travel/catalog": "^0.123.0",
112
- "@voyant-travel/cruises-contracts": "^0.105.2"
112
+ "@voyant-travel/cruises-contracts": "^0.105.3"
113
113
  },
114
114
  "devDependencies": {
115
+ "drizzle-kit": "^0.31.10",
115
116
  "typescript": "^6.0.2",
116
117
  "vitest": "^4.0.0",
117
118
  "@voyant-travel/voyant-test-utils": "^0.1.0",
118
119
  "@voyant-travel/voyant-typescript-config": "^0.1.0"
119
120
  },
120
121
  "files": [
121
- "dist"
122
+ "dist",
123
+ "migrations/*.sql",
124
+ "migrations/meta/_journal.json"
122
125
  ],
123
126
  "publishConfig": {
124
127
  "access": "public"
@@ -139,7 +142,8 @@
139
142
  "lint": "biome check src/",
140
143
  "test": "vitest run",
141
144
  "build": "tsc -p tsconfig.json",
142
- "clean": "rm -rf dist tsconfig.tsbuildinfo"
145
+ "clean": "rm -rf dist tsconfig.tsbuildinfo",
146
+ "db:generate": "drizzle-kit generate --config=drizzle.migrations.config.ts --name=cruises_baseline && node ../../scripts/d2/guard-create-type.mjs ./migrations && node ../../scripts/d2/ensure-extensions.mjs ./migrations"
143
147
  },
144
148
  "main": "./dist/index.js",
145
149
  "types": "./dist/index.d.ts"