@voyant-travel/cruises 0.118.2

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.
Files changed (210) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +50 -0
  3. package/dist/adapters/connect-compat.d.ts +20 -0
  4. package/dist/adapters/connect-compat.d.ts.map +1 -0
  5. package/dist/adapters/connect-compat.js +71 -0
  6. package/dist/adapters/contract-fixture.d.ts +32 -0
  7. package/dist/adapters/contract-fixture.d.ts.map +1 -0
  8. package/dist/adapters/contract-fixture.js +152 -0
  9. package/dist/adapters/index.d.ts +331 -0
  10. package/dist/adapters/index.d.ts.map +1 -0
  11. package/dist/adapters/index.js +16 -0
  12. package/dist/adapters/memoize.d.ts +28 -0
  13. package/dist/adapters/memoize.d.ts.map +1 -0
  14. package/dist/adapters/memoize.js +131 -0
  15. package/dist/adapters/mock.d.ts +44 -0
  16. package/dist/adapters/mock.d.ts.map +1 -0
  17. package/dist/adapters/mock.js +192 -0
  18. package/dist/adapters/registry.d.ts +26 -0
  19. package/dist/adapters/registry.d.ts.map +1 -0
  20. package/dist/adapters/registry.js +42 -0
  21. package/dist/adapters/source-adapter-shim.d.ts +80 -0
  22. package/dist/adapters/source-adapter-shim.d.ts.map +1 -0
  23. package/dist/adapters/source-adapter-shim.js +390 -0
  24. package/dist/booking-engine/handler.d.ts +108 -0
  25. package/dist/booking-engine/handler.d.ts.map +1 -0
  26. package/dist/booking-engine/handler.js +225 -0
  27. package/dist/booking-engine/index.d.ts +9 -0
  28. package/dist/booking-engine/index.d.ts.map +1 -0
  29. package/dist/booking-engine/index.js +8 -0
  30. package/dist/booking-extension.d.ts +1179 -0
  31. package/dist/booking-extension.d.ts.map +1 -0
  32. package/dist/booking-extension.js +342 -0
  33. package/dist/cabin-features.d.ts +8 -0
  34. package/dist/cabin-features.d.ts.map +1 -0
  35. package/dist/cabin-features.js +7 -0
  36. package/dist/catalog-policy-cabins.d.ts +18 -0
  37. package/dist/catalog-policy-cabins.d.ts.map +1 -0
  38. package/dist/catalog-policy-cabins.js +96 -0
  39. package/dist/catalog-policy-core.d.ts +3 -0
  40. package/dist/catalog-policy-core.d.ts.map +1 -0
  41. package/dist/catalog-policy-core.js +247 -0
  42. package/dist/catalog-policy-structure.d.ts +3 -0
  43. package/dist/catalog-policy-structure.d.ts.map +1 -0
  44. package/dist/catalog-policy-structure.js +387 -0
  45. package/dist/catalog-policy.d.ts +15 -0
  46. package/dist/catalog-policy.d.ts.map +1 -0
  47. package/dist/catalog-policy.js +19 -0
  48. package/dist/content-shape.d.ts +5 -0
  49. package/dist/content-shape.d.ts.map +1 -0
  50. package/dist/content-shape.js +13 -0
  51. package/dist/draft-shape.d.ts +59 -0
  52. package/dist/draft-shape.d.ts.map +1 -0
  53. package/dist/draft-shape.js +98 -0
  54. package/dist/events.d.ts +21 -0
  55. package/dist/events.d.ts.map +1 -0
  56. package/dist/events.js +21 -0
  57. package/dist/index.d.ts +43 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +66 -0
  60. package/dist/lib/key.d.ts +41 -0
  61. package/dist/lib/key.d.ts.map +1 -0
  62. package/dist/lib/key.js +100 -0
  63. package/dist/routes-booking-payloads.d.ts +133 -0
  64. package/dist/routes-booking-payloads.d.ts.map +1 -0
  65. package/dist/routes-booking-payloads.js +142 -0
  66. package/dist/routes-content.d.ts +53 -0
  67. package/dist/routes-content.d.ts.map +1 -0
  68. package/dist/routes-content.js +158 -0
  69. package/dist/routes-core.d.ts +4 -0
  70. package/dist/routes-core.d.ts.map +1 -0
  71. package/dist/routes-core.js +68 -0
  72. package/dist/routes-detail.d.ts +4 -0
  73. package/dist/routes-detail.d.ts.map +1 -0
  74. package/dist/routes-detail.js +261 -0
  75. package/dist/routes-env.d.ts +13 -0
  76. package/dist/routes-env.d.ts.map +1 -0
  77. package/dist/routes-env.js +1 -0
  78. package/dist/routes-keying.d.ts +28 -0
  79. package/dist/routes-keying.d.ts.map +1 -0
  80. package/dist/routes-keying.js +70 -0
  81. package/dist/routes-public.d.ts +911 -0
  82. package/dist/routes-public.d.ts.map +1 -0
  83. package/dist/routes-public.js +252 -0
  84. package/dist/routes-sailings-prices.d.ts +4 -0
  85. package/dist/routes-sailings-prices.d.ts.map +1 -0
  86. package/dist/routes-sailings-prices.js +278 -0
  87. package/dist/routes-search-index.d.ts +4 -0
  88. package/dist/routes-search-index.d.ts.map +1 -0
  89. package/dist/routes-search-index.js +25 -0
  90. package/dist/routes-ships.d.ts +4 -0
  91. package/dist/routes-ships.d.ts.map +1 -0
  92. package/dist/routes-ships.js +147 -0
  93. package/dist/routes-voyage-groups.d.ts +4 -0
  94. package/dist/routes-voyage-groups.d.ts.map +1 -0
  95. package/dist/routes-voyage-groups.js +85 -0
  96. package/dist/routes.d.ts +5 -0
  97. package/dist/routes.d.ts.map +1 -0
  98. package/dist/routes.js +14 -0
  99. package/dist/schema-cabins.d.ts +1098 -0
  100. package/dist/schema-cabins.d.ts.map +1 -0
  101. package/dist/schema-cabins.js +105 -0
  102. package/dist/schema-content.d.ts +577 -0
  103. package/dist/schema-content.d.ts.map +1 -0
  104. package/dist/schema-content.js +63 -0
  105. package/dist/schema-core.d.ts +1790 -0
  106. package/dist/schema-core.d.ts.map +1 -0
  107. package/dist/schema-core.js +171 -0
  108. package/dist/schema-itinerary.d.ts +556 -0
  109. package/dist/schema-itinerary.d.ts.map +1 -0
  110. package/dist/schema-itinerary.js +50 -0
  111. package/dist/schema-pricing.d.ts +633 -0
  112. package/dist/schema-pricing.d.ts.map +1 -0
  113. package/dist/schema-pricing.js +73 -0
  114. package/dist/schema-search.d.ts +611 -0
  115. package/dist/schema-search.d.ts.map +1 -0
  116. package/dist/schema-search.js +64 -0
  117. package/dist/schema-shared.d.ts +23 -0
  118. package/dist/schema-shared.d.ts.map +1 -0
  119. package/dist/schema-shared.js +107 -0
  120. package/dist/schema-sourced-content.d.ts +247 -0
  121. package/dist/schema-sourced-content.d.ts.map +1 -0
  122. package/dist/schema-sourced-content.js +38 -0
  123. package/dist/schema.d.ts +10 -0
  124. package/dist/schema.d.ts.map +1 -0
  125. package/dist/schema.js +9 -0
  126. package/dist/service-booking-helpers.d.ts +12 -0
  127. package/dist/service-booking-helpers.d.ts.map +1 -0
  128. package/dist/service-booking-helpers.js +94 -0
  129. package/dist/service-booking-types.d.ts +101 -0
  130. package/dist/service-booking-types.d.ts.map +1 -0
  131. package/dist/service-booking-types.js +1 -0
  132. package/dist/service-bookings.d.ts +46 -0
  133. package/dist/service-bookings.d.ts.map +1 -0
  134. package/dist/service-bookings.js +420 -0
  135. package/dist/service-catalog-plane-cabins.d.ts +24 -0
  136. package/dist/service-catalog-plane-cabins.d.ts.map +1 -0
  137. package/dist/service-catalog-plane-cabins.js +90 -0
  138. package/dist/service-catalog-plane.d.ts +74 -0
  139. package/dist/service-catalog-plane.d.ts.map +1 -0
  140. package/dist/service-catalog-plane.js +194 -0
  141. package/dist/service-content-synthesizer.d.ts +42 -0
  142. package/dist/service-content-synthesizer.d.ts.map +1 -0
  143. package/dist/service-content-synthesizer.js +144 -0
  144. package/dist/service-content.d.ts +74 -0
  145. package/dist/service-content.d.ts.map +1 -0
  146. package/dist/service-content.js +315 -0
  147. package/dist/service-core.d.ts +134 -0
  148. package/dist/service-core.d.ts.map +1 -0
  149. package/dist/service-core.js +257 -0
  150. package/dist/service-detach.d.ts +18 -0
  151. package/dist/service-detach.d.ts.map +1 -0
  152. package/dist/service-detach.js +199 -0
  153. package/dist/service-enrichment.d.ts +11 -0
  154. package/dist/service-enrichment.d.ts.map +1 -0
  155. package/dist/service-enrichment.js +47 -0
  156. package/dist/service-external-refresh.d.ts +39 -0
  157. package/dist/service-external-refresh.d.ts.map +1 -0
  158. package/dist/service-external-refresh.js +47 -0
  159. package/dist/service-itinerary.d.ts +22 -0
  160. package/dist/service-itinerary.d.ts.map +1 -0
  161. package/dist/service-itinerary.js +34 -0
  162. package/dist/service-prices.d.ts +46 -0
  163. package/dist/service-prices.d.ts.map +1 -0
  164. package/dist/service-prices.js +89 -0
  165. package/dist/service-pricing.d.ts +97 -0
  166. package/dist/service-pricing.d.ts.map +1 -0
  167. package/dist/service-pricing.js +198 -0
  168. package/dist/service-sailings.d.ts +48 -0
  169. package/dist/service-sailings.d.ts.map +1 -0
  170. package/dist/service-sailings.js +145 -0
  171. package/dist/service-search-types.d.ts +54 -0
  172. package/dist/service-search-types.d.ts.map +1 -0
  173. package/dist/service-search-types.js +1 -0
  174. package/dist/service-search.d.ts +65 -0
  175. package/dist/service-search.d.ts.map +1 -0
  176. package/dist/service-search.js +467 -0
  177. package/dist/service-shared.d.ts +22 -0
  178. package/dist/service-shared.d.ts.map +1 -0
  179. package/dist/service-shared.js +22 -0
  180. package/dist/service-ships.d.ts +47 -0
  181. package/dist/service-ships.d.ts.map +1 -0
  182. package/dist/service-ships.js +156 -0
  183. package/dist/service.d.ts +255 -0
  184. package/dist/service.d.ts.map +1 -0
  185. package/dist/service.js +12 -0
  186. package/dist/validation-cabins.d.ts +267 -0
  187. package/dist/validation-cabins.d.ts.map +1 -0
  188. package/dist/validation-cabins.js +77 -0
  189. package/dist/validation-content.d.ts +123 -0
  190. package/dist/validation-content.d.ts.map +1 -0
  191. package/dist/validation-content.js +40 -0
  192. package/dist/validation-core.d.ts +393 -0
  193. package/dist/validation-core.d.ts.map +1 -0
  194. package/dist/validation-core.js +162 -0
  195. package/dist/validation-itinerary.d.ts +123 -0
  196. package/dist/validation-itinerary.d.ts.map +1 -0
  197. package/dist/validation-itinerary.js +47 -0
  198. package/dist/validation-pricing.d.ts +137 -0
  199. package/dist/validation-pricing.d.ts.map +1 -0
  200. package/dist/validation-pricing.js +49 -0
  201. package/dist/validation-search.d.ts +118 -0
  202. package/dist/validation-search.d.ts.map +1 -0
  203. package/dist/validation-search.js +60 -0
  204. package/dist/validation-shared.d.ts +123 -0
  205. package/dist/validation-shared.d.ts.map +1 -0
  206. package/dist/validation-shared.js +103 -0
  207. package/dist/validation.d.ts +8 -0
  208. package/dist/validation.d.ts.map +1 -0
  209. package/dist/validation.js +7 -0
  210. package/package.json +146 -0
@@ -0,0 +1,393 @@
1
+ import { z } from "./validation-shared.js";
2
+ export declare const insertVoyageGroupSchema: z.ZodObject<{
3
+ slug: z.ZodString;
4
+ name: z.ZodString;
5
+ groupKind: z.ZodEnum<{
6
+ combination: "combination";
7
+ grand_voyage: "grand_voyage";
8
+ world_cruise: "world_cruise";
9
+ cruise_tour: "cruise_tour";
10
+ }>;
11
+ lineSupplierId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
12
+ nights: z.ZodNumber;
13
+ embarkPortFacilityId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
14
+ embarkPortCanonicalPlaceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
15
+ disembarkPortFacilityId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
16
+ disembarkPortCanonicalPlaceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
17
+ description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
18
+ shortDescription: z.ZodNullable<z.ZodOptional<z.ZodString>>;
19
+ highlights: z.ZodDefault<z.ZodArray<z.ZodString>>;
20
+ regions: z.ZodDefault<z.ZodArray<z.ZodString>>;
21
+ themes: z.ZodDefault<z.ZodArray<z.ZodString>>;
22
+ heroImageUrl: z.ZodNullable<z.ZodOptional<z.ZodString>>;
23
+ mapImageUrl: z.ZodNullable<z.ZodOptional<z.ZodString>>;
24
+ status: z.ZodDefault<z.ZodEnum<{
25
+ live: "live";
26
+ draft: "draft";
27
+ awaiting_review: "awaiting_review";
28
+ archived: "archived";
29
+ }>>;
30
+ lowestPriceCached: z.ZodNullable<z.ZodOptional<z.ZodString>>;
31
+ lowestPriceCurrencyCached: z.ZodNullable<z.ZodOptional<z.ZodString>>;
32
+ earliestDepartureCached: z.ZodNullable<z.ZodOptional<z.ZodString>>;
33
+ latestDepartureCached: z.ZodNullable<z.ZodOptional<z.ZodString>>;
34
+ externalRefs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
35
+ }, z.core.$strip>;
36
+ export declare const updateVoyageGroupSchema: z.ZodObject<{
37
+ slug: z.ZodOptional<z.ZodString>;
38
+ name: z.ZodOptional<z.ZodString>;
39
+ groupKind: z.ZodOptional<z.ZodEnum<{
40
+ combination: "combination";
41
+ grand_voyage: "grand_voyage";
42
+ world_cruise: "world_cruise";
43
+ cruise_tour: "cruise_tour";
44
+ }>>;
45
+ lineSupplierId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
46
+ nights: z.ZodOptional<z.ZodNumber>;
47
+ embarkPortFacilityId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
48
+ embarkPortCanonicalPlaceId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
49
+ disembarkPortFacilityId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
50
+ disembarkPortCanonicalPlaceId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
51
+ description: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
52
+ shortDescription: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
53
+ highlights: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
54
+ regions: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
55
+ themes: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
56
+ heroImageUrl: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
57
+ mapImageUrl: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
58
+ status: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
59
+ live: "live";
60
+ draft: "draft";
61
+ awaiting_review: "awaiting_review";
62
+ archived: "archived";
63
+ }>>>;
64
+ lowestPriceCached: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
65
+ lowestPriceCurrencyCached: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
66
+ earliestDepartureCached: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
67
+ latestDepartureCached: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
68
+ externalRefs: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>>;
69
+ }, z.core.$strip>;
70
+ export declare const voyageGroupListQuerySchema: z.ZodObject<{
71
+ groupKind: z.ZodOptional<z.ZodEnum<{
72
+ combination: "combination";
73
+ grand_voyage: "grand_voyage";
74
+ world_cruise: "world_cruise";
75
+ cruise_tour: "cruise_tour";
76
+ }>>;
77
+ status: z.ZodOptional<z.ZodEnum<{
78
+ live: "live";
79
+ draft: "draft";
80
+ awaiting_review: "awaiting_review";
81
+ archived: "archived";
82
+ }>>;
83
+ lineSupplierId: z.ZodOptional<z.ZodString>;
84
+ region: z.ZodOptional<z.ZodString>;
85
+ search: z.ZodOptional<z.ZodString>;
86
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
87
+ offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
88
+ }, z.core.$strip>;
89
+ export type InsertVoyageGroup = z.infer<typeof insertVoyageGroupSchema>;
90
+ export type UpdateVoyageGroup = z.infer<typeof updateVoyageGroupSchema>;
91
+ export type VoyageGroupListQuery = z.infer<typeof voyageGroupListQuerySchema>;
92
+ export declare const insertCruiseSchema: z.ZodObject<{
93
+ slug: z.ZodString;
94
+ name: z.ZodString;
95
+ cruiseType: z.ZodEnum<{
96
+ ocean: "ocean";
97
+ river: "river";
98
+ expedition: "expedition";
99
+ coastal: "coastal";
100
+ }>;
101
+ lineSupplierId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
102
+ defaultShipId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
103
+ nights: z.ZodNumber;
104
+ embarkPortFacilityId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
105
+ embarkPortCanonicalPlaceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
106
+ disembarkPortFacilityId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
107
+ disembarkPortCanonicalPlaceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
108
+ description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
109
+ shortDescription: z.ZodNullable<z.ZodOptional<z.ZodString>>;
110
+ highlights: z.ZodDefault<z.ZodArray<z.ZodString>>;
111
+ inclusionsHtml: z.ZodNullable<z.ZodOptional<z.ZodString>>;
112
+ exclusionsHtml: z.ZodNullable<z.ZodOptional<z.ZodString>>;
113
+ regionIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
114
+ waterwayIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
115
+ portIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
116
+ countryIso: z.ZodDefault<z.ZodArray<z.ZodString>>;
117
+ regions: z.ZodDefault<z.ZodArray<z.ZodString>>;
118
+ waterways: z.ZodDefault<z.ZodArray<z.ZodString>>;
119
+ ports: z.ZodDefault<z.ZodArray<z.ZodString>>;
120
+ countries: z.ZodDefault<z.ZodArray<z.ZodString>>;
121
+ themes: z.ZodDefault<z.ZodArray<z.ZodString>>;
122
+ heroImageUrl: z.ZodNullable<z.ZodOptional<z.ZodString>>;
123
+ mapImageUrl: z.ZodNullable<z.ZodOptional<z.ZodString>>;
124
+ status: z.ZodDefault<z.ZodEnum<{
125
+ live: "live";
126
+ draft: "draft";
127
+ awaiting_review: "awaiting_review";
128
+ archived: "archived";
129
+ }>>;
130
+ externalRefs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
131
+ }, z.core.$strip>;
132
+ export declare const updateCruiseSchema: z.ZodObject<{
133
+ slug: z.ZodOptional<z.ZodString>;
134
+ name: z.ZodOptional<z.ZodString>;
135
+ cruiseType: z.ZodOptional<z.ZodEnum<{
136
+ ocean: "ocean";
137
+ river: "river";
138
+ expedition: "expedition";
139
+ coastal: "coastal";
140
+ }>>;
141
+ lineSupplierId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
142
+ defaultShipId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
143
+ nights: z.ZodOptional<z.ZodNumber>;
144
+ embarkPortFacilityId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
145
+ embarkPortCanonicalPlaceId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
146
+ disembarkPortFacilityId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
147
+ disembarkPortCanonicalPlaceId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
148
+ description: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
149
+ shortDescription: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
150
+ highlights: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
151
+ inclusionsHtml: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
152
+ exclusionsHtml: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
153
+ regionIds: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
154
+ waterwayIds: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
155
+ portIds: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
156
+ countryIso: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
157
+ regions: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
158
+ waterways: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
159
+ ports: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
160
+ countries: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
161
+ themes: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
162
+ heroImageUrl: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
163
+ mapImageUrl: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
164
+ status: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
165
+ live: "live";
166
+ draft: "draft";
167
+ awaiting_review: "awaiting_review";
168
+ archived: "archived";
169
+ }>>>;
170
+ externalRefs: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>>;
171
+ }, z.core.$strip>;
172
+ export declare const cruiseListQuerySchema: z.ZodObject<{
173
+ cruiseType: z.ZodOptional<z.ZodEnum<{
174
+ ocean: "ocean";
175
+ river: "river";
176
+ expedition: "expedition";
177
+ coastal: "coastal";
178
+ }>>;
179
+ status: z.ZodOptional<z.ZodEnum<{
180
+ live: "live";
181
+ draft: "draft";
182
+ awaiting_review: "awaiting_review";
183
+ archived: "archived";
184
+ }>>;
185
+ lineSupplierId: z.ZodOptional<z.ZodString>;
186
+ region: z.ZodOptional<z.ZodString>;
187
+ search: z.ZodOptional<z.ZodString>;
188
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
189
+ offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
190
+ }, z.core.$strip>;
191
+ export type InsertCruise = z.infer<typeof insertCruiseSchema>;
192
+ export type UpdateCruise = z.infer<typeof updateCruiseSchema>;
193
+ export type CruiseListQuery = z.infer<typeof cruiseListQuerySchema>;
194
+ export declare const insertSailingSchema: z.ZodObject<{
195
+ cruiseId: z.ZodString;
196
+ shipId: z.ZodString;
197
+ departureDate: z.ZodString;
198
+ returnDate: z.ZodString;
199
+ embarkPortFacilityId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
200
+ embarkPortCanonicalPlaceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
201
+ disembarkPortFacilityId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
202
+ disembarkPortCanonicalPlaceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
203
+ direction: z.ZodNullable<z.ZodOptional<z.ZodEnum<{
204
+ upstream: "upstream";
205
+ downstream: "downstream";
206
+ round_trip: "round_trip";
207
+ one_way: "one_way";
208
+ }>>>;
209
+ availabilityNote: z.ZodNullable<z.ZodOptional<z.ZodString>>;
210
+ isCharter: z.ZodDefault<z.ZodBoolean>;
211
+ salesStatus: z.ZodDefault<z.ZodEnum<{
212
+ open: "open";
213
+ on_request: "on_request";
214
+ wait_list: "wait_list";
215
+ sold_out: "sold_out";
216
+ closed: "closed";
217
+ }>>;
218
+ externalRefs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
219
+ }, z.core.$strip>;
220
+ export declare const updateSailingSchema: z.ZodObject<{
221
+ cruiseId: z.ZodOptional<z.ZodString>;
222
+ shipId: z.ZodOptional<z.ZodString>;
223
+ departureDate: z.ZodOptional<z.ZodString>;
224
+ returnDate: z.ZodOptional<z.ZodString>;
225
+ embarkPortFacilityId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
226
+ embarkPortCanonicalPlaceId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
227
+ disembarkPortFacilityId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
228
+ disembarkPortCanonicalPlaceId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
229
+ direction: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodEnum<{
230
+ upstream: "upstream";
231
+ downstream: "downstream";
232
+ round_trip: "round_trip";
233
+ one_way: "one_way";
234
+ }>>>>;
235
+ availabilityNote: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
236
+ isCharter: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
237
+ salesStatus: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
238
+ open: "open";
239
+ on_request: "on_request";
240
+ wait_list: "wait_list";
241
+ sold_out: "sold_out";
242
+ closed: "closed";
243
+ }>>>;
244
+ externalRefs: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>>;
245
+ }, z.core.$strip>;
246
+ export declare const sailingListQuerySchema: z.ZodObject<{
247
+ cruiseId: z.ZodOptional<z.ZodString>;
248
+ shipId: z.ZodOptional<z.ZodString>;
249
+ dateFrom: z.ZodOptional<z.ZodString>;
250
+ dateTo: z.ZodOptional<z.ZodString>;
251
+ salesStatus: z.ZodOptional<z.ZodEnum<{
252
+ open: "open";
253
+ on_request: "on_request";
254
+ wait_list: "wait_list";
255
+ sold_out: "sold_out";
256
+ closed: "closed";
257
+ }>>;
258
+ direction: z.ZodOptional<z.ZodEnum<{
259
+ upstream: "upstream";
260
+ downstream: "downstream";
261
+ round_trip: "round_trip";
262
+ one_way: "one_way";
263
+ }>>;
264
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
265
+ offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
266
+ }, z.core.$strip>;
267
+ export type InsertSailing = z.infer<typeof insertSailingSchema>;
268
+ export type UpdateSailing = z.infer<typeof updateSailingSchema>;
269
+ export type SailingListQuery = z.infer<typeof sailingListQuerySchema>;
270
+ export declare const insertVoyageGroupSegmentSchema: z.ZodObject<{
271
+ voyageGroupId: z.ZodString;
272
+ sortOrder: z.ZodNumber;
273
+ segmentKind: z.ZodEnum<{
274
+ other: "other";
275
+ cruise: "cruise";
276
+ land: "land";
277
+ hotel: "hotel";
278
+ transfer: "transfer";
279
+ rail: "rail";
280
+ air: "air";
281
+ }>;
282
+ segmentRole: z.ZodDefault<z.ZodEnum<{
283
+ core: "core";
284
+ pre_extension: "pre_extension";
285
+ post_extension: "post_extension";
286
+ }>>;
287
+ title: z.ZodString;
288
+ description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
289
+ cruiseId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
290
+ sailingId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
291
+ startDay: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
292
+ endDay: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
293
+ startDate: z.ZodNullable<z.ZodOptional<z.ZodString>>;
294
+ endDate: z.ZodNullable<z.ZodOptional<z.ZodString>>;
295
+ embarkPortFacilityId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
296
+ embarkPortCanonicalPlaceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
297
+ disembarkPortFacilityId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
298
+ disembarkPortCanonicalPlaceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
299
+ nights: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
300
+ externalRefs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
301
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
302
+ }, z.core.$strip>;
303
+ export declare const insertVoyageGroupScopedSegmentSchema: z.ZodObject<{
304
+ voyageGroupId: z.ZodOptional<z.ZodString>;
305
+ sortOrder: z.ZodNumber;
306
+ segmentKind: z.ZodEnum<{
307
+ other: "other";
308
+ cruise: "cruise";
309
+ land: "land";
310
+ hotel: "hotel";
311
+ transfer: "transfer";
312
+ rail: "rail";
313
+ air: "air";
314
+ }>;
315
+ segmentRole: z.ZodDefault<z.ZodEnum<{
316
+ core: "core";
317
+ pre_extension: "pre_extension";
318
+ post_extension: "post_extension";
319
+ }>>;
320
+ title: z.ZodString;
321
+ description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
322
+ cruiseId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
323
+ sailingId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
324
+ startDay: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
325
+ endDay: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
326
+ startDate: z.ZodNullable<z.ZodOptional<z.ZodString>>;
327
+ endDate: z.ZodNullable<z.ZodOptional<z.ZodString>>;
328
+ embarkPortFacilityId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
329
+ embarkPortCanonicalPlaceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
330
+ disembarkPortFacilityId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
331
+ disembarkPortCanonicalPlaceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
332
+ nights: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
333
+ externalRefs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
334
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
335
+ }, z.core.$strip>;
336
+ export declare const updateVoyageGroupSegmentSchema: z.ZodObject<{
337
+ voyageGroupId: z.ZodOptional<z.ZodString>;
338
+ sortOrder: z.ZodOptional<z.ZodNumber>;
339
+ segmentKind: z.ZodOptional<z.ZodEnum<{
340
+ other: "other";
341
+ cruise: "cruise";
342
+ land: "land";
343
+ hotel: "hotel";
344
+ transfer: "transfer";
345
+ rail: "rail";
346
+ air: "air";
347
+ }>>;
348
+ segmentRole: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
349
+ core: "core";
350
+ pre_extension: "pre_extension";
351
+ post_extension: "post_extension";
352
+ }>>>;
353
+ title: z.ZodOptional<z.ZodString>;
354
+ description: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
355
+ cruiseId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
356
+ sailingId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
357
+ startDay: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodNumber>>>;
358
+ endDay: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodNumber>>>;
359
+ startDate: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
360
+ endDate: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
361
+ embarkPortFacilityId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
362
+ embarkPortCanonicalPlaceId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
363
+ disembarkPortFacilityId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
364
+ disembarkPortCanonicalPlaceId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
365
+ nights: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodNumber>>>;
366
+ externalRefs: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>>;
367
+ metadata: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
368
+ }, z.core.$strip>;
369
+ export declare const voyageGroupSegmentListQuerySchema: z.ZodObject<{
370
+ voyageGroupId: z.ZodOptional<z.ZodString>;
371
+ cruiseId: z.ZodOptional<z.ZodString>;
372
+ sailingId: z.ZodOptional<z.ZodString>;
373
+ segmentKind: z.ZodOptional<z.ZodEnum<{
374
+ other: "other";
375
+ cruise: "cruise";
376
+ land: "land";
377
+ hotel: "hotel";
378
+ transfer: "transfer";
379
+ rail: "rail";
380
+ air: "air";
381
+ }>>;
382
+ segmentRole: z.ZodOptional<z.ZodEnum<{
383
+ core: "core";
384
+ pre_extension: "pre_extension";
385
+ post_extension: "post_extension";
386
+ }>>;
387
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
388
+ offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
389
+ }, z.core.$strip>;
390
+ export type InsertVoyageGroupSegment = z.infer<typeof insertVoyageGroupSegmentSchema>;
391
+ export type UpdateVoyageGroupSegment = z.infer<typeof updateVoyageGroupSegmentSchema>;
392
+ export type VoyageGroupSegmentListQuery = z.infer<typeof voyageGroupSegmentListQuerySchema>;
393
+ //# sourceMappingURL=validation-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-core.d.ts","sourceRoot":"","sources":["../src/validation-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,CAAC,EACF,MAAM,wBAAwB,CAAA;AA2B/B,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAwB,CAAA;AAC5D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAkC,CAAA;AAEtE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;iBAQrC,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAiC7E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAmB,CAAA;AAClD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA6B,CAAA;AAE5D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;iBAQhC,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAC7D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAC7D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAkBnE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;iBAAoB,CAAA;AACpD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;iBAA8B,CAAA;AAE9D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;iBASjC,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAsDrE,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA+B,CAAA;AAC1E,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKP,CAAA;AAC1C,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAED,CAAA;AAE1C,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;iBAQ5C,CAAA;AAEF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AACrF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AACrF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA"}
@@ -0,0 +1,162 @@
1
+ import { cruiseSailingDirectionSchema, cruiseStatusSchema, cruiseTypeSchema, cruiseVoyageGroupKindSchema, cruiseVoyageSegmentKindSchema, cruiseVoyageSegmentRoleSchema, currencyCodeSchema, externalRefsSchema, isoDateSchema, moneyStringSchema, sailingSalesStatusSchema, slugSchema, z, } from "./validation-shared.js";
2
+ const voyageGroupCoreSchema = z.object({
3
+ slug: slugSchema,
4
+ name: z.string().min(1).max(255),
5
+ groupKind: cruiseVoyageGroupKindSchema,
6
+ lineSupplierId: z.string().optional().nullable(),
7
+ nights: z.number().int().min(0),
8
+ embarkPortFacilityId: z.string().optional().nullable(),
9
+ embarkPortCanonicalPlaceId: z.string().optional().nullable(),
10
+ disembarkPortFacilityId: z.string().optional().nullable(),
11
+ disembarkPortCanonicalPlaceId: z.string().optional().nullable(),
12
+ description: z.string().optional().nullable(),
13
+ shortDescription: z.string().optional().nullable(),
14
+ highlights: z.array(z.string()).default([]),
15
+ regions: z.array(z.string()).default([]),
16
+ themes: z.array(z.string()).default([]),
17
+ heroImageUrl: z.string().url().optional().nullable(),
18
+ mapImageUrl: z.string().url().optional().nullable(),
19
+ status: cruiseStatusSchema.default("draft"),
20
+ lowestPriceCached: moneyStringSchema.optional().nullable(),
21
+ lowestPriceCurrencyCached: currencyCodeSchema.optional().nullable(),
22
+ earliestDepartureCached: isoDateSchema.optional().nullable(),
23
+ latestDepartureCached: isoDateSchema.optional().nullable(),
24
+ externalRefs: externalRefsSchema,
25
+ });
26
+ export const insertVoyageGroupSchema = voyageGroupCoreSchema;
27
+ export const updateVoyageGroupSchema = voyageGroupCoreSchema.partial();
28
+ export const voyageGroupListQuerySchema = z.object({
29
+ groupKind: cruiseVoyageGroupKindSchema.optional(),
30
+ status: cruiseStatusSchema.optional(),
31
+ lineSupplierId: z.string().optional(),
32
+ region: z.string().optional(),
33
+ search: z.string().optional(),
34
+ limit: z.coerce.number().int().min(1).max(100).default(50),
35
+ offset: z.coerce.number().int().min(0).default(0),
36
+ });
37
+ const cruiseCoreSchema = z.object({
38
+ slug: slugSchema,
39
+ name: z.string().min(1).max(255),
40
+ cruiseType: cruiseTypeSchema,
41
+ lineSupplierId: z.string().optional().nullable(),
42
+ defaultShipId: z.string().optional().nullable(),
43
+ nights: z.number().int().positive(),
44
+ embarkPortFacilityId: z.string().optional().nullable(),
45
+ embarkPortCanonicalPlaceId: z.string().optional().nullable(),
46
+ disembarkPortFacilityId: z.string().optional().nullable(),
47
+ disembarkPortCanonicalPlaceId: z.string().optional().nullable(),
48
+ description: z.string().optional().nullable(),
49
+ shortDescription: z.string().optional().nullable(),
50
+ highlights: z.array(z.string()).default([]),
51
+ inclusionsHtml: z.string().optional().nullable(),
52
+ exclusionsHtml: z.string().optional().nullable(),
53
+ regionIds: z.array(z.string()).default([]),
54
+ waterwayIds: z.array(z.string()).default([]),
55
+ portIds: z.array(z.string()).default([]),
56
+ countryIso: z.array(z.string()).default([]),
57
+ regions: z.array(z.string()).default([]),
58
+ waterways: z.array(z.string()).default([]),
59
+ ports: z.array(z.string()).default([]),
60
+ countries: z.array(z.string()).default([]),
61
+ themes: z.array(z.string()).default([]),
62
+ heroImageUrl: z.string().url().optional().nullable(),
63
+ mapImageUrl: z.string().url().optional().nullable(),
64
+ status: cruiseStatusSchema.default("draft"),
65
+ externalRefs: externalRefsSchema,
66
+ });
67
+ export const insertCruiseSchema = cruiseCoreSchema;
68
+ export const updateCruiseSchema = cruiseCoreSchema.partial();
69
+ export const cruiseListQuerySchema = z.object({
70
+ cruiseType: cruiseTypeSchema.optional(),
71
+ status: cruiseStatusSchema.optional(),
72
+ lineSupplierId: z.string().optional(),
73
+ region: z.string().optional(),
74
+ search: z.string().optional(),
75
+ limit: z.coerce.number().int().min(1).max(100).default(50),
76
+ offset: z.coerce.number().int().min(0).default(0),
77
+ });
78
+ const sailingCoreSchema = z.object({
79
+ cruiseId: z.string(),
80
+ shipId: z.string(),
81
+ departureDate: isoDateSchema,
82
+ returnDate: isoDateSchema,
83
+ embarkPortFacilityId: z.string().optional().nullable(),
84
+ embarkPortCanonicalPlaceId: z.string().optional().nullable(),
85
+ disembarkPortFacilityId: z.string().optional().nullable(),
86
+ disembarkPortCanonicalPlaceId: z.string().optional().nullable(),
87
+ direction: cruiseSailingDirectionSchema.optional().nullable(),
88
+ availabilityNote: z.string().optional().nullable(),
89
+ isCharter: z.boolean().default(false),
90
+ salesStatus: sailingSalesStatusSchema.default("open"),
91
+ externalRefs: externalRefsSchema,
92
+ });
93
+ export const insertSailingSchema = sailingCoreSchema;
94
+ export const updateSailingSchema = sailingCoreSchema.partial();
95
+ export const sailingListQuerySchema = z.object({
96
+ cruiseId: z.string().optional(),
97
+ shipId: z.string().optional(),
98
+ dateFrom: isoDateSchema.optional(),
99
+ dateTo: isoDateSchema.optional(),
100
+ salesStatus: sailingSalesStatusSchema.optional(),
101
+ direction: cruiseSailingDirectionSchema.optional(),
102
+ limit: z.coerce.number().int().min(1).max(100).default(50),
103
+ offset: z.coerce.number().int().min(0).default(0),
104
+ });
105
+ const voyageGroupSegmentFields = {
106
+ voyageGroupId: z.string(),
107
+ sortOrder: z.number().int().min(0),
108
+ segmentKind: cruiseVoyageSegmentKindSchema,
109
+ segmentRole: cruiseVoyageSegmentRoleSchema.default("core"),
110
+ title: z.string().min(1).max(255),
111
+ description: z.string().optional().nullable(),
112
+ cruiseId: z.string().optional().nullable(),
113
+ sailingId: z.string().optional().nullable(),
114
+ startDay: z.number().int().positive().optional().nullable(),
115
+ endDay: z.number().int().positive().optional().nullable(),
116
+ startDate: isoDateSchema.optional().nullable(),
117
+ endDate: isoDateSchema.optional().nullable(),
118
+ embarkPortFacilityId: z.string().optional().nullable(),
119
+ embarkPortCanonicalPlaceId: z.string().optional().nullable(),
120
+ disembarkPortFacilityId: z.string().optional().nullable(),
121
+ disembarkPortCanonicalPlaceId: z.string().optional().nullable(),
122
+ nights: z.number().int().min(0).optional().nullable(),
123
+ externalRefs: externalRefsSchema,
124
+ metadata: z.record(z.string(), z.unknown()).default({}),
125
+ };
126
+ function validateVoyageSegmentRange(value, ctx) {
127
+ if (value.startDay && value.endDay && value.endDay < value.startDay) {
128
+ ctx.addIssue({
129
+ code: "custom",
130
+ path: ["endDay"],
131
+ message: "endDay must be greater than or equal to startDay",
132
+ });
133
+ }
134
+ if (value.startDate && value.endDate && value.endDate < value.startDate) {
135
+ ctx.addIssue({
136
+ code: "custom",
137
+ path: ["endDate"],
138
+ message: "endDate must be greater than or equal to startDate",
139
+ });
140
+ }
141
+ }
142
+ const voyageGroupSegmentBaseSchema = z.object(voyageGroupSegmentFields);
143
+ const voyageGroupSegmentCoreSchema = voyageGroupSegmentBaseSchema.superRefine(validateVoyageSegmentRange);
144
+ export const insertVoyageGroupSegmentSchema = voyageGroupSegmentCoreSchema;
145
+ export const insertVoyageGroupScopedSegmentSchema = z
146
+ .object({
147
+ ...voyageGroupSegmentFields,
148
+ voyageGroupId: z.string().optional(),
149
+ })
150
+ .superRefine(validateVoyageSegmentRange);
151
+ export const updateVoyageGroupSegmentSchema = voyageGroupSegmentBaseSchema
152
+ .partial()
153
+ .superRefine(validateVoyageSegmentRange);
154
+ export const voyageGroupSegmentListQuerySchema = z.object({
155
+ voyageGroupId: z.string().optional(),
156
+ cruiseId: z.string().optional(),
157
+ sailingId: z.string().optional(),
158
+ segmentKind: cruiseVoyageSegmentKindSchema.optional(),
159
+ segmentRole: cruiseVoyageSegmentRoleSchema.optional(),
160
+ limit: z.coerce.number().int().min(1).max(100).default(50),
161
+ offset: z.coerce.number().int().min(0).default(0),
162
+ });