@voyant-travel/charters 0.131.0 → 0.132.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/service.d.ts CHANGED
@@ -8,35 +8,30 @@ import type { ReplaceVoyageSchedule } from "./validation-itinerary.js";
8
8
  import type { ReplaceVoyageSuites } from "./validation-pricing.js";
9
9
  import type { InsertYacht, UpdateYacht, YachtListQuery } from "./validation-yachts.js";
10
10
  export declare const chartersService: {
11
- listProducts(db: PostgresJsDatabase, query: ProductListQuery): Promise<{
12
- data: {
13
- id: string;
14
- slug: string;
15
- name: string;
16
- lineSupplierId: string | null;
17
- defaultYachtId: string | null;
18
- description: string | null;
19
- shortDescription: string | null;
20
- heroImageUrl: string | null;
21
- mapImageUrl: string | null;
22
- regions: string[] | null;
23
- themes: string[] | null;
24
- status: "live" | "draft" | "awaiting_review" | "archived";
25
- defaultBookingModes: ("per_suite" | "whole_yacht")[] | null;
26
- defaultMybaTemplateId: string | null;
27
- defaultApaPercent: string | null;
28
- lowestPriceCachedAmount: string | null;
29
- lowestPriceCachedCurrency: string | null;
30
- earliestVoyageCached: string | null;
31
- latestVoyageCached: string | null;
32
- externalRefs: Record<string, string> | null;
33
- createdAt: Date;
34
- updatedAt: Date;
35
- }[];
36
- total: number;
37
- limit: number;
38
- offset: number;
39
- }>;
11
+ listProducts(db: PostgresJsDatabase, query: ProductListQuery): Promise<import("@voyant-travel/types").ListResponse<{
12
+ id: string;
13
+ slug: string;
14
+ name: string;
15
+ lineSupplierId: string | null;
16
+ defaultYachtId: string | null;
17
+ description: string | null;
18
+ shortDescription: string | null;
19
+ heroImageUrl: string | null;
20
+ mapImageUrl: string | null;
21
+ regions: string[] | null;
22
+ themes: string[] | null;
23
+ status: "live" | "draft" | "awaiting_review" | "archived";
24
+ defaultBookingModes: ("per_suite" | "whole_yacht")[] | null;
25
+ defaultMybaTemplateId: string | null;
26
+ defaultApaPercent: string | null;
27
+ lowestPriceCachedAmount: string | null;
28
+ lowestPriceCachedCurrency: string | null;
29
+ earliestVoyageCached: string | null;
30
+ latestVoyageCached: string | null;
31
+ externalRefs: Record<string, string> | null;
32
+ createdAt: Date;
33
+ updatedAt: Date;
34
+ }>>;
40
35
  getProductById(db: PostgresJsDatabase, id: string, options?: {
41
36
  withVoyages?: boolean;
42
37
  withYacht?: boolean;
@@ -50,37 +45,32 @@ export declare const chartersService: {
50
45
  recomputeProductAggregates(db: PostgresJsDatabase, productId: string, options?: {
51
46
  browseCurrency?: string;
52
47
  }): Promise<CharterProduct | null>;
53
- listVoyages(db: PostgresJsDatabase, query: VoyageListQuery): Promise<{
54
- data: {
55
- id: string;
56
- productId: string;
57
- yachtId: string;
58
- voyageCode: string;
59
- name: string | null;
60
- embarkPortFacilityId: string | null;
61
- embarkPortName: string | null;
62
- disembarkPortFacilityId: string | null;
63
- disembarkPortName: string | null;
64
- departureDate: string;
65
- returnDate: string;
66
- nights: number;
67
- bookingModes: ("per_suite" | "whole_yacht")[];
68
- appointmentOnly: boolean;
69
- wholeYachtPricesByCurrency: Record<string, string>;
70
- apaPercentOverride: string | null;
71
- mybaTemplateIdOverride: string | null;
72
- charterAreaOverride: string | null;
73
- salesStatus: "open" | "on_request" | "wait_list" | "sold_out" | "closed";
74
- availabilityNote: string | null;
75
- externalRefs: Record<string, string> | null;
76
- lastSyncedAt: Date | null;
77
- createdAt: Date;
78
- updatedAt: Date;
79
- }[];
80
- total: number;
81
- limit: number;
82
- offset: number;
83
- }>;
48
+ listVoyages(db: PostgresJsDatabase, query: VoyageListQuery): Promise<import("@voyant-travel/types").ListResponse<{
49
+ id: string;
50
+ productId: string;
51
+ yachtId: string;
52
+ voyageCode: string;
53
+ name: string | null;
54
+ embarkPortFacilityId: string | null;
55
+ embarkPortName: string | null;
56
+ disembarkPortFacilityId: string | null;
57
+ disembarkPortName: string | null;
58
+ departureDate: string;
59
+ returnDate: string;
60
+ nights: number;
61
+ bookingModes: ("per_suite" | "whole_yacht")[];
62
+ appointmentOnly: boolean;
63
+ wholeYachtPricesByCurrency: Record<string, string>;
64
+ apaPercentOverride: string | null;
65
+ mybaTemplateIdOverride: string | null;
66
+ charterAreaOverride: string | null;
67
+ salesStatus: "open" | "on_request" | "wait_list" | "sold_out" | "closed";
68
+ availabilityNote: string | null;
69
+ externalRefs: Record<string, string> | null;
70
+ lastSyncedAt: Date | null;
71
+ createdAt: Date;
72
+ updatedAt: Date;
73
+ }>>;
84
74
  getVoyageById(db: PostgresJsDatabase, id: string, options?: {
85
75
  withSuites?: boolean;
86
76
  withSchedule?: boolean;
@@ -92,38 +82,33 @@ export declare const chartersService: {
92
82
  updateVoyage(db: PostgresJsDatabase, id: string, data: UpdateVoyage): Promise<CharterVoyage | null>;
93
83
  replaceVoyageSuites(db: PostgresJsDatabase, payload: ReplaceVoyageSuites): Promise<CharterSuite[]>;
94
84
  replaceVoyageSchedule(db: PostgresJsDatabase, payload: ReplaceVoyageSchedule): Promise<CharterScheduleDay[]>;
95
- listYachts(db: PostgresJsDatabase, query: YachtListQuery): Promise<{
96
- data: {
97
- id: string;
98
- lineSupplierId: string | null;
85
+ listYachts(db: PostgresJsDatabase, query: YachtListQuery): Promise<import("@voyant-travel/types").ListResponse<{
86
+ id: string;
87
+ lineSupplierId: string | null;
88
+ name: string;
89
+ slug: string;
90
+ yachtClass: "luxury_motor" | "luxury_sailing" | "expedition" | "small_cruise";
91
+ capacityGuests: number | null;
92
+ capacityCrew: number | null;
93
+ lengthMeters: string | null;
94
+ yearBuilt: number | null;
95
+ yearRefurbished: number | null;
96
+ imo: string | null;
97
+ description: string | null;
98
+ gallery: string[] | null;
99
+ amenities: Record<string, unknown> | null;
100
+ crewBios: {
101
+ role: string;
99
102
  name: string;
100
- slug: string;
101
- yachtClass: "luxury_motor" | "luxury_sailing" | "expedition" | "small_cruise";
102
- capacityGuests: number | null;
103
- capacityCrew: number | null;
104
- lengthMeters: string | null;
105
- yearBuilt: number | null;
106
- yearRefurbished: number | null;
107
- imo: string | null;
108
- description: string | null;
109
- gallery: string[] | null;
110
- amenities: Record<string, unknown> | null;
111
- crewBios: {
112
- role: string;
113
- name: string;
114
- bio?: string;
115
- photoUrl?: string;
116
- }[] | null;
117
- defaultCharterAreas: string[] | null;
118
- externalRefs: Record<string, string> | null;
119
- isActive: boolean;
120
- createdAt: Date;
121
- updatedAt: Date;
122
- }[];
123
- total: number;
124
- limit: number;
125
- offset: number;
126
- }>;
103
+ bio?: string;
104
+ photoUrl?: string;
105
+ }[] | null;
106
+ defaultCharterAreas: string[] | null;
107
+ externalRefs: Record<string, string> | null;
108
+ isActive: boolean;
109
+ createdAt: Date;
110
+ updatedAt: Date;
111
+ }>>;
127
112
  getYachtById(db: PostgresJsDatabase, id: string): Promise<CharterYacht | null>;
128
113
  createYacht(db: PostgresJsDatabase, data: InsertYacht): Promise<CharterYacht>;
129
114
  updateYacht(db: PostgresJsDatabase, id: string, data: UpdateYacht): Promise<CharterYacht | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAEjE,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,aAAa,EAKnB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,KAAK,kBAAkB,EAAuB,MAAM,uBAAuB,CAAA;AACpF,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,qBAAqB,CAAA;AACtE,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,oBAAoB,CAAA;AACrE,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,eAAe,EAChB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAQtF,eAAO,MAAM,eAAe;qBAGH,kBAAkB,SAAS,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAgC5D,kBAAkB,MAClB,MAAM,YACD;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GACtD,OAAO,CAAC,CAAC,cAAc,GAAG;QAAE,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;sBAyBxE,kBAAkB,QAAQ,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;sBAUnF,kBAAkB,MAClB,MAAM,QACJ,aAAa,GAClB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;uBASR,kBAAkB,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;mCAUlF,kBAAkB,aACX,MAAM,YACR;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GACnC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;oBAiDX,kBAAkB,SAAS,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA8B1D,kBAAkB,MAClB,MAAM,YACD;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GACxD,OAAO,CACN,CAAC,aAAa,GAAG;QACf,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;QACvB,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAA;KAChC,CAAC,GACF,IAAI,CACP;qBA0BsB,kBAAkB,QAAQ,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;qBAgChF,kBAAkB,MAClB,MAAM,QACJ,YAAY,GACjB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;4BAU1B,kBAAkB,WACb,mBAAmB,GAC3B,OAAO,CAAC,YAAY,EAAE,CAAC;8BAapB,kBAAkB,WACb,qBAAqB,GAC7B,OAAO,CAAC,kBAAkB,EAAE,CAAC;mBAcX,kBAAkB,SAAS,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAwBvC,kBAAkB,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;oBAK9D,kBAAkB,QAAQ,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;oBAO7E,kBAAkB,MAClB,MAAM,QACJ,WAAW,GAChB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;CAQhC,CAAA"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,aAAa,EAKnB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,KAAK,kBAAkB,EAAuB,MAAM,uBAAuB,CAAA;AACpF,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,qBAAqB,CAAA;AACtE,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,oBAAoB,CAAA;AACrE,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,eAAe,EAChB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAQtF,eAAO,MAAM,eAAe;qBAGH,kBAAkB,SAAS,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;uBAgC5D,kBAAkB,MAClB,MAAM,YACD;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GACtD,OAAO,CAAC,CAAC,cAAc,GAAG;QAAE,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;sBAyBxE,kBAAkB,QAAQ,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;sBAUnF,kBAAkB,MAClB,MAAM,QACJ,aAAa,GAClB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;uBASR,kBAAkB,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;mCAUlF,kBAAkB,aACX,MAAM,YACR;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GACnC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;oBAiDX,kBAAkB,SAAS,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;sBA8B1D,kBAAkB,MAClB,MAAM,YACD;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GACxD,OAAO,CACN,CAAC,aAAa,GAAG;QACf,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;QACvB,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAA;KAChC,CAAC,GACF,IAAI,CACP;qBA0BsB,kBAAkB,QAAQ,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;qBAgChF,kBAAkB,MAClB,MAAM,QACJ,YAAY,GACjB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;4BAU1B,kBAAkB,WACb,mBAAmB,GAC3B,OAAO,CAAC,YAAY,EAAE,CAAC;8BAapB,kBAAkB,WACb,qBAAqB,GAC7B,OAAO,CAAC,kBAAkB,EAAE,CAAC;mBAcX,kBAAkB,SAAS,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAwBvC,kBAAkB,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;oBAK9D,kBAAkB,QAAQ,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;oBAO7E,kBAAkB,MAClB,MAAM,QACJ,WAAW,GAChB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;CAQhC,CAAA"}
package/dist/service.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { listResponse } from "@voyant-travel/types";
1
2
  import { and, asc, count, desc, eq, gte, ilike, lte, or, sql } from "drizzle-orm";
2
3
  import { charterProducts, charterVoyages, } from "./schema-core.js";
3
4
  import { charterScheduleDays } from "./schema-itinerary.js";
@@ -35,7 +36,7 @@ export const chartersService = {
35
36
  .offset(offset),
36
37
  db.select({ value: count() }).from(charterProducts).where(where),
37
38
  ]);
38
- return { data: rows, total: totalRows[0]?.value ?? 0, limit, offset };
39
+ return listResponse(rows, { total: totalRows[0]?.value ?? 0, limit, offset });
39
40
  },
40
41
  async getProductById(db, id, options = {}) {
41
42
  const [row] = await db.select().from(charterProducts).where(eq(charterProducts.id, id)).limit(1);
@@ -154,7 +155,7 @@ export const chartersService = {
154
155
  .offset(offset),
155
156
  db.select({ value: count() }).from(charterVoyages).where(where),
156
157
  ]);
157
- return { data: rows, total: totalRows[0]?.value ?? 0, limit, offset };
158
+ return listResponse(rows, { total: totalRows[0]?.value ?? 0, limit, offset });
158
159
  },
159
160
  async getVoyageById(db, id, options = {}) {
160
161
  const [row] = await db.select().from(charterVoyages).where(eq(charterVoyages.id, id)).limit(1);
@@ -256,7 +257,7 @@ export const chartersService = {
256
257
  .offset(offset),
257
258
  db.select({ value: count() }).from(charterYachts).where(where),
258
259
  ]);
259
- return { data: rows, total: totalRows[0]?.value ?? 0, limit, offset };
260
+ return listResponse(rows, { total: totalRows[0]?.value ?? 0, limit, offset });
260
261
  },
261
262
  async getYachtById(db, id) {
262
263
  const [row] = await db.select().from(charterYachts).where(eq(charterYachts.id, id)).limit(1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voyant-travel/charters",
3
- "version": "0.131.0",
3
+ "version": "0.132.1",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -74,12 +74,13 @@
74
74
  "drizzle-orm": "^0.45.2",
75
75
  "hono": "^4.12.10",
76
76
  "zod": "^4.3.6",
77
- "@voyant-travel/bookings": "^0.133.0",
77
+ "@voyant-travel/bookings": "^0.134.1",
78
78
  "@voyant-travel/charters-contracts": "^0.104.1",
79
79
  "@voyant-travel/core": "^0.111.0",
80
80
  "@voyant-travel/db": "^0.109.0",
81
- "@voyant-travel/hono": "^0.114.0",
82
- "@voyant-travel/catalog": "^0.131.0"
81
+ "@voyant-travel/types": "^0.106.0",
82
+ "@voyant-travel/hono": "^0.116.0",
83
+ "@voyant-travel/catalog": "^0.132.1"
83
84
  },
84
85
  "devDependencies": {
85
86
  "drizzle-kit": "^0.31.10",