@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,147 @@
1
+ import { parseJsonBody, parseQuery } from "@voyant-travel/hono";
2
+ import { z } from "zod";
3
+ import { parseUnifiedKey } from "./lib/key.js";
4
+ import { adapterNotRegistered, invalidKey, resolveExternal } from "./routes-keying.js";
5
+ import { cruisesService } from "./service.js";
6
+ import { insertCabinCategorySchema, insertCabinSchema, insertDeckSchema, insertShipSchema, shipListQuerySchema, updateCabinCategorySchema, updateCabinSchema, updateDeckSchema, updateShipSchema, } from "./validation-cabins.js";
7
+ export function registerCruiseShipRoutes(app) {
8
+ app
9
+ // --- ships ---
10
+ .get("/ships", async (c) => {
11
+ const query = parseQuery(c, shipListQuerySchema);
12
+ const result = await cruisesService.listShips(c.get("db"), query);
13
+ return c.json(result);
14
+ })
15
+ .post("/ships", async (c) => {
16
+ const data = await parseJsonBody(c, insertShipSchema);
17
+ const row = await cruisesService.createShip(c.get("db"), data);
18
+ return c.json({ data: row }, 201);
19
+ })
20
+ .get("/ships/:key", async (c) => {
21
+ const parsed = parseUnifiedKey(c.req.param("key"));
22
+ if (parsed.kind === "invalid")
23
+ return c.json(invalidKey(parsed.raw), 400);
24
+ if (parsed.kind === "external") {
25
+ const ext = resolveExternal(parsed);
26
+ if (!ext)
27
+ return c.json(adapterNotRegistered(parsed.provider), 501);
28
+ const ship = await ext.adapter.fetchShip(ext.sourceRef);
29
+ if (!ship)
30
+ return c.json({ error: "not_found" }, 404);
31
+ return c.json({
32
+ data: {
33
+ source: "external",
34
+ sourceProvider: ext.adapter.name,
35
+ sourceRef: ship.sourceRef,
36
+ ship,
37
+ },
38
+ });
39
+ }
40
+ const row = await cruisesService.getShipById(c.get("db"), parsed.id);
41
+ if (!row)
42
+ return c.json({ error: "not_found" }, 404);
43
+ return c.json({ data: row });
44
+ })
45
+ .put("/ships/:key", async (c) => {
46
+ const parsed = parseUnifiedKey(c.req.param("key"));
47
+ if (parsed.kind === "external")
48
+ return c.json({ error: "external_cruise_read_only" }, 409);
49
+ if (parsed.kind === "invalid")
50
+ return c.json(invalidKey(parsed.raw), 400);
51
+ const data = await parseJsonBody(c, updateShipSchema);
52
+ const row = await cruisesService.updateShip(c.get("db"), parsed.id, data);
53
+ if (!row)
54
+ return c.json({ error: "not_found" }, 404);
55
+ return c.json({ data: row });
56
+ })
57
+ .get("/ships/:key/decks", async (c) => {
58
+ const parsed = parseUnifiedKey(c.req.param("key"));
59
+ if (parsed.kind === "invalid")
60
+ return c.json(invalidKey(parsed.raw), 400);
61
+ if (parsed.kind === "external") {
62
+ const ext = resolveExternal(parsed);
63
+ if (!ext)
64
+ return c.json(adapterNotRegistered(parsed.provider), 501);
65
+ const ship = await ext.adapter.fetchShip(ext.sourceRef);
66
+ return c.json({ data: ship?.decks ?? [] });
67
+ }
68
+ const decks = await cruisesService.listShipDecks(c.get("db"), parsed.id);
69
+ return c.json({ data: decks });
70
+ })
71
+ .post("/ships/:key/decks", async (c) => {
72
+ const parsed = parseUnifiedKey(c.req.param("key"));
73
+ if (parsed.kind === "external")
74
+ return c.json({ error: "external_cruise_read_only" }, 409);
75
+ if (parsed.kind === "invalid")
76
+ return c.json(invalidKey(parsed.raw), 400);
77
+ const data = await parseJsonBody(c, insertDeckSchema.omit({ shipId: true }));
78
+ const row = await cruisesService.upsertDeck(c.get("db"), { ...data, shipId: parsed.id });
79
+ return c.json({ data: row }, 201);
80
+ })
81
+ .put("/decks/:deckId", async (c) => {
82
+ const data = await parseJsonBody(c, updateDeckSchema);
83
+ const row = await cruisesService.updateDeck(c.get("db"), c.req.param("deckId"), data);
84
+ if (!row)
85
+ return c.json({ error: "not_found" }, 404);
86
+ return c.json({ data: row });
87
+ })
88
+ .get("/ships/:key/categories", async (c) => {
89
+ const parsed = parseUnifiedKey(c.req.param("key"));
90
+ if (parsed.kind === "invalid")
91
+ return c.json(invalidKey(parsed.raw), 400);
92
+ if (parsed.kind === "external") {
93
+ const ext = resolveExternal(parsed);
94
+ if (!ext)
95
+ return c.json(adapterNotRegistered(parsed.provider), 501);
96
+ const ship = await ext.adapter.fetchShip(ext.sourceRef);
97
+ return c.json({ data: ship?.categories ?? [] });
98
+ }
99
+ const categories = await cruisesService.listShipCabinCategories(c.get("db"), parsed.id);
100
+ return c.json({ data: categories });
101
+ })
102
+ .put("/ships/:key/categories/bulk", async (c) => {
103
+ const parsed = parseUnifiedKey(c.req.param("key"));
104
+ if (parsed.kind === "external")
105
+ return c.json({ error: "external_cruise_read_only" }, 409);
106
+ if (parsed.kind === "invalid")
107
+ return c.json(invalidKey(parsed.raw), 400);
108
+ const payload = await parseJsonBody(c, z.object({ categories: z.array(insertCabinCategorySchema) }));
109
+ const out = [];
110
+ for (const cat of payload.categories) {
111
+ const row = await cruisesService.upsertCabinCategory(c.get("db"), {
112
+ ...cat,
113
+ shipId: parsed.id,
114
+ });
115
+ out.push(row);
116
+ }
117
+ return c.json({ data: out });
118
+ })
119
+ .put("/categories/:categoryId", async (c) => {
120
+ const data = await parseJsonBody(c, updateCabinCategorySchema);
121
+ const row = await cruisesService.updateCabinCategory(c.get("db"), c.req.param("categoryId"), data);
122
+ if (!row)
123
+ return c.json({ error: "not_found" }, 404);
124
+ return c.json({ data: row });
125
+ })
126
+ .get("/categories/:categoryId/cabins", async (c) => {
127
+ const cabins = await cruisesService.listCabinsByCategory(c.get("db"), c.req.param("categoryId"));
128
+ return c.json({ data: cabins });
129
+ })
130
+ .put("/categories/:categoryId/cabins/bulk", async (c) => {
131
+ const categoryId = c.req.param("categoryId");
132
+ const payload = await parseJsonBody(c, z.object({ cabins: z.array(insertCabinSchema.omit({ categoryId: true })) }));
133
+ const out = [];
134
+ for (const cabin of payload.cabins) {
135
+ const row = await cruisesService.upsertCabin(c.get("db"), { ...cabin, categoryId });
136
+ out.push(row);
137
+ }
138
+ return c.json({ data: out });
139
+ })
140
+ .put("/cabins/:cabinId", async (c) => {
141
+ const data = await parseJsonBody(c, updateCabinSchema);
142
+ const row = await cruisesService.updateCabin(c.get("db"), c.req.param("cabinId"), data);
143
+ if (!row)
144
+ return c.json({ error: "not_found" }, 404);
145
+ return c.json({ data: row });
146
+ });
147
+ }
@@ -0,0 +1,4 @@
1
+ import type { Hono } from "hono";
2
+ import type { CruiseRoutesEnv as Env } from "./routes-env.js";
3
+ export declare function registerCruiseVoyageGroupRoutes(app: Hono<Env>): void;
4
+ //# sourceMappingURL=routes-voyage-groups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes-voyage-groups.d.ts","sourceRoot":"","sources":["../src/routes-voyage-groups.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAEhC,OAAO,KAAK,EAAE,eAAe,IAAI,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAY7D,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,QAsF7D"}
@@ -0,0 +1,85 @@
1
+ import { parseJsonBody, parseQuery } from "@voyant-travel/hono";
2
+ import { cruisesService } from "./service.js";
3
+ import { updateEnrichmentProgramSchema } from "./validation-content.js";
4
+ import { insertVoyageGroupSchema, insertVoyageGroupScopedSegmentSchema, updateVoyageGroupSchema, updateVoyageGroupSegmentSchema, voyageGroupListQuerySchema, voyageGroupSegmentListQuerySchema, } from "./validation-core.js";
5
+ export function registerCruiseVoyageGroupRoutes(app) {
6
+ app
7
+ // --- voyage groups ---
8
+ .get("/voyage-groups", async (c) => {
9
+ const query = parseQuery(c, voyageGroupListQuerySchema);
10
+ const result = await cruisesService.listVoyageGroups(c.get("db"), query);
11
+ return c.json(result);
12
+ })
13
+ .post("/voyage-groups", async (c) => {
14
+ const data = await parseJsonBody(c, insertVoyageGroupSchema);
15
+ const row = await cruisesService.createVoyageGroup(c.get("db"), data);
16
+ return c.json({ data: row }, 201);
17
+ })
18
+ .get("/voyage-groups/:id", async (c) => {
19
+ const includes = new Set((c.req.query("include") ?? "")
20
+ .split(",")
21
+ .map((s) => s.trim())
22
+ .filter(Boolean));
23
+ const row = await cruisesService.getVoyageGroupById(c.get("db"), c.req.param("id"), {
24
+ withSegments: includes.has("segments"),
25
+ });
26
+ if (!row)
27
+ return c.json({ error: "not_found" }, 404);
28
+ return c.json({ data: row });
29
+ })
30
+ .put("/voyage-groups/:id", async (c) => {
31
+ const data = await parseJsonBody(c, updateVoyageGroupSchema);
32
+ const row = await cruisesService.updateVoyageGroup(c.get("db"), c.req.param("id"), data);
33
+ if (!row)
34
+ return c.json({ error: "not_found" }, 404);
35
+ return c.json({ data: row });
36
+ })
37
+ .delete("/voyage-groups/:id", async (c) => {
38
+ const row = await cruisesService.archiveVoyageGroup(c.get("db"), c.req.param("id"));
39
+ if (!row)
40
+ return c.json({ error: "not_found" }, 404);
41
+ return c.json({ data: row });
42
+ })
43
+ .get("/voyage-groups/:id/segments", async (c) => {
44
+ const query = parseQuery(c, voyageGroupSegmentListQuerySchema);
45
+ const result = await cruisesService.listVoyageGroupSegments(c.get("db"), {
46
+ ...query,
47
+ voyageGroupId: c.req.param("id"),
48
+ });
49
+ return c.json(result);
50
+ })
51
+ .post("/voyage-groups/:id/segments", async (c) => {
52
+ const data = await parseJsonBody(c, insertVoyageGroupScopedSegmentSchema);
53
+ const row = await cruisesService.createVoyageGroupSegment(c.get("db"), {
54
+ ...data,
55
+ voyageGroupId: c.req.param("id"),
56
+ });
57
+ return c.json({ data: row }, 201);
58
+ })
59
+ .put("/voyage-group-segments/:segmentId", async (c) => {
60
+ const data = await parseJsonBody(c, updateVoyageGroupSegmentSchema);
61
+ const row = await cruisesService.updateVoyageGroupSegment(c.get("db"), c.req.param("segmentId"), data);
62
+ if (!row)
63
+ return c.json({ error: "not_found" }, 404);
64
+ return c.json({ data: row });
65
+ })
66
+ .delete("/voyage-group-segments/:segmentId", async (c) => {
67
+ const ok = await cruisesService.deleteVoyageGroupSegment(c.get("db"), c.req.param("segmentId"));
68
+ if (!ok)
69
+ return c.json({ error: "not_found" }, 404);
70
+ return c.body(null, 204);
71
+ })
72
+ .put("/enrichment/:programId", async (c) => {
73
+ const data = await parseJsonBody(c, updateEnrichmentProgramSchema);
74
+ const row = await cruisesService.updateEnrichmentProgram(c.get("db"), c.req.param("programId"), data);
75
+ if (!row)
76
+ return c.json({ error: "not_found" }, 404);
77
+ return c.json({ data: row });
78
+ })
79
+ .delete("/enrichment/:programId", async (c) => {
80
+ const ok = await cruisesService.deleteEnrichmentProgram(c.get("db"), c.req.param("programId"));
81
+ if (!ok)
82
+ return c.json({ error: "not_found" }, 404);
83
+ return c.body(null, 204);
84
+ });
85
+ }
@@ -0,0 +1,5 @@
1
+ import { Hono } from "hono";
2
+ import type { CruiseRoutesEnv as Env } from "./routes-env.js";
3
+ export declare const cruiseAdminRoutes: Hono<Env, import("hono/types").BlankSchema, "/">;
4
+ export type CruiseAdminRoutes = typeof cruiseAdminRoutes;
5
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,KAAK,EAAE,eAAe,IAAI,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAM7D,eAAO,MAAM,iBAAiB,kDAAkB,CAAA;AAShD,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAA"}
package/dist/routes.js ADDED
@@ -0,0 +1,14 @@
1
+ import { Hono } from "hono";
2
+ import { registerCruiseCoreRoutes } from "./routes-core.js";
3
+ import { registerCruiseDetailRoutes } from "./routes-detail.js";
4
+ import { registerCruiseSailingAndPriceRoutes } from "./routes-sailings-prices.js";
5
+ import { registerCruiseSearchIndexRoutes } from "./routes-search-index.js";
6
+ import { registerCruiseShipRoutes } from "./routes-ships.js";
7
+ import { registerCruiseVoyageGroupRoutes } from "./routes-voyage-groups.js";
8
+ export const cruiseAdminRoutes = new Hono();
9
+ registerCruiseCoreRoutes(cruiseAdminRoutes);
10
+ registerCruiseVoyageGroupRoutes(cruiseAdminRoutes);
11
+ registerCruiseSailingAndPriceRoutes(cruiseAdminRoutes);
12
+ registerCruiseShipRoutes(cruiseAdminRoutes);
13
+ registerCruiseSearchIndexRoutes(cruiseAdminRoutes);
14
+ registerCruiseDetailRoutes(cruiseAdminRoutes);