@voyantjs/markets 0.1.0

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,451 @@
1
+ import { z } from "zod";
2
+ export declare const marketStatusSchema: z.ZodEnum<{
3
+ active: "active";
4
+ inactive: "inactive";
5
+ archived: "archived";
6
+ }>;
7
+ export declare const marketVisibilitySchema: z.ZodEnum<{
8
+ public: "public";
9
+ private: "private";
10
+ hidden: "hidden";
11
+ }>;
12
+ export declare const marketSellabilitySchema: z.ZodEnum<{
13
+ sellable: "sellable";
14
+ on_request: "on_request";
15
+ unavailable: "unavailable";
16
+ }>;
17
+ export declare const marketChannelScopeSchema: z.ZodEnum<{
18
+ internal: "internal";
19
+ all: "all";
20
+ b2c: "b2c";
21
+ b2b: "b2b";
22
+ }>;
23
+ export declare const fxRateSourceSchema: z.ZodEnum<{
24
+ supplier: "supplier";
25
+ manual: "manual";
26
+ ecb: "ecb";
27
+ custom: "custom";
28
+ channel: "channel";
29
+ other: "other";
30
+ }>;
31
+ export declare const marketCoreSchema: z.ZodObject<{
32
+ code: z.ZodString;
33
+ name: z.ZodString;
34
+ status: z.ZodDefault<z.ZodEnum<{
35
+ active: "active";
36
+ inactive: "inactive";
37
+ archived: "archived";
38
+ }>>;
39
+ regionCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
40
+ countryCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
41
+ defaultLanguageTag: z.ZodString;
42
+ defaultCurrency: z.ZodString;
43
+ timezone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
44
+ taxContext: z.ZodOptional<z.ZodNullable<z.ZodString>>;
45
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
46
+ }, z.core.$strip>;
47
+ export declare const insertMarketSchema: z.ZodObject<{
48
+ code: z.ZodString;
49
+ name: z.ZodString;
50
+ status: z.ZodDefault<z.ZodEnum<{
51
+ active: "active";
52
+ inactive: "inactive";
53
+ archived: "archived";
54
+ }>>;
55
+ regionCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
56
+ countryCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
57
+ defaultLanguageTag: z.ZodString;
58
+ defaultCurrency: z.ZodString;
59
+ timezone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
60
+ taxContext: z.ZodOptional<z.ZodNullable<z.ZodString>>;
61
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
62
+ }, z.core.$strip>;
63
+ export declare const updateMarketSchema: z.ZodObject<{
64
+ code: z.ZodOptional<z.ZodString>;
65
+ name: z.ZodOptional<z.ZodString>;
66
+ status: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
67
+ active: "active";
68
+ inactive: "inactive";
69
+ archived: "archived";
70
+ }>>>;
71
+ regionCode: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
72
+ countryCode: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
73
+ defaultLanguageTag: z.ZodOptional<z.ZodString>;
74
+ defaultCurrency: z.ZodOptional<z.ZodString>;
75
+ timezone: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
76
+ taxContext: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
77
+ metadata: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
78
+ }, z.core.$strip>;
79
+ export declare const marketListQuerySchema: z.ZodObject<{
80
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
81
+ offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
82
+ status: z.ZodOptional<z.ZodEnum<{
83
+ active: "active";
84
+ inactive: "inactive";
85
+ archived: "archived";
86
+ }>>;
87
+ countryCode: z.ZodOptional<z.ZodString>;
88
+ search: z.ZodOptional<z.ZodString>;
89
+ }, z.core.$strip>;
90
+ export declare const marketLocaleCoreSchema: z.ZodObject<{
91
+ languageTag: z.ZodString;
92
+ isDefault: z.ZodDefault<z.ZodBoolean>;
93
+ sortOrder: z.ZodDefault<z.ZodNumber>;
94
+ active: z.ZodDefault<z.ZodBoolean>;
95
+ }, z.core.$strip>;
96
+ export declare const insertMarketLocaleSchema: z.ZodObject<{
97
+ languageTag: z.ZodString;
98
+ isDefault: z.ZodDefault<z.ZodBoolean>;
99
+ sortOrder: z.ZodDefault<z.ZodNumber>;
100
+ active: z.ZodDefault<z.ZodBoolean>;
101
+ }, z.core.$strip>;
102
+ export declare const updateMarketLocaleSchema: z.ZodObject<{
103
+ languageTag: z.ZodOptional<z.ZodString>;
104
+ isDefault: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
105
+ sortOrder: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
106
+ active: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
107
+ }, z.core.$strip>;
108
+ export declare const marketLocaleListQuerySchema: z.ZodObject<{
109
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
110
+ offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
111
+ marketId: z.ZodOptional<z.ZodString>;
112
+ languageTag: z.ZodOptional<z.ZodString>;
113
+ active: z.ZodOptional<z.ZodPipe<z.ZodEnum<{
114
+ 0: "0";
115
+ 1: "1";
116
+ true: "true";
117
+ false: "false";
118
+ }>, z.ZodTransform<boolean, "0" | "1" | "true" | "false">>>;
119
+ }, z.core.$strip>;
120
+ export declare const marketCurrencyCoreSchema: z.ZodObject<{
121
+ currencyCode: z.ZodString;
122
+ isDefault: z.ZodDefault<z.ZodBoolean>;
123
+ isSettlement: z.ZodDefault<z.ZodBoolean>;
124
+ isReporting: z.ZodDefault<z.ZodBoolean>;
125
+ sortOrder: z.ZodDefault<z.ZodNumber>;
126
+ active: z.ZodDefault<z.ZodBoolean>;
127
+ }, z.core.$strip>;
128
+ export declare const insertMarketCurrencySchema: z.ZodObject<{
129
+ currencyCode: z.ZodString;
130
+ isDefault: z.ZodDefault<z.ZodBoolean>;
131
+ isSettlement: z.ZodDefault<z.ZodBoolean>;
132
+ isReporting: z.ZodDefault<z.ZodBoolean>;
133
+ sortOrder: z.ZodDefault<z.ZodNumber>;
134
+ active: z.ZodDefault<z.ZodBoolean>;
135
+ }, z.core.$strip>;
136
+ export declare const updateMarketCurrencySchema: z.ZodObject<{
137
+ currencyCode: z.ZodOptional<z.ZodString>;
138
+ isDefault: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
139
+ isSettlement: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
140
+ isReporting: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
141
+ sortOrder: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
142
+ active: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
143
+ }, z.core.$strip>;
144
+ export declare const marketCurrencyListQuerySchema: z.ZodObject<{
145
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
146
+ offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
147
+ marketId: z.ZodOptional<z.ZodString>;
148
+ currencyCode: z.ZodOptional<z.ZodString>;
149
+ active: z.ZodOptional<z.ZodPipe<z.ZodEnum<{
150
+ 0: "0";
151
+ 1: "1";
152
+ true: "true";
153
+ false: "false";
154
+ }>, z.ZodTransform<boolean, "0" | "1" | "true" | "false">>>;
155
+ }, z.core.$strip>;
156
+ export declare const fxRateSetCoreSchema: z.ZodObject<{
157
+ source: z.ZodDefault<z.ZodEnum<{
158
+ supplier: "supplier";
159
+ manual: "manual";
160
+ ecb: "ecb";
161
+ custom: "custom";
162
+ channel: "channel";
163
+ other: "other";
164
+ }>>;
165
+ baseCurrency: z.ZodString;
166
+ effectiveAt: z.ZodString;
167
+ observedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
168
+ sourceReference: z.ZodOptional<z.ZodNullable<z.ZodString>>;
169
+ notes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
170
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
171
+ }, z.core.$strip>;
172
+ export declare const insertFxRateSetSchema: z.ZodObject<{
173
+ source: z.ZodDefault<z.ZodEnum<{
174
+ supplier: "supplier";
175
+ manual: "manual";
176
+ ecb: "ecb";
177
+ custom: "custom";
178
+ channel: "channel";
179
+ other: "other";
180
+ }>>;
181
+ baseCurrency: z.ZodString;
182
+ effectiveAt: z.ZodString;
183
+ observedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
184
+ sourceReference: z.ZodOptional<z.ZodNullable<z.ZodString>>;
185
+ notes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
186
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
187
+ }, z.core.$strip>;
188
+ export declare const updateFxRateSetSchema: z.ZodObject<{
189
+ source: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
190
+ supplier: "supplier";
191
+ manual: "manual";
192
+ ecb: "ecb";
193
+ custom: "custom";
194
+ channel: "channel";
195
+ other: "other";
196
+ }>>>;
197
+ baseCurrency: z.ZodOptional<z.ZodString>;
198
+ effectiveAt: z.ZodOptional<z.ZodString>;
199
+ observedAt: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
200
+ sourceReference: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
201
+ notes: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
202
+ metadata: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
203
+ }, z.core.$strip>;
204
+ export declare const fxRateSetListQuerySchema: z.ZodObject<{
205
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
206
+ offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
207
+ source: z.ZodOptional<z.ZodEnum<{
208
+ supplier: "supplier";
209
+ manual: "manual";
210
+ ecb: "ecb";
211
+ custom: "custom";
212
+ channel: "channel";
213
+ other: "other";
214
+ }>>;
215
+ baseCurrency: z.ZodOptional<z.ZodString>;
216
+ }, z.core.$strip>;
217
+ export declare const exchangeRateCoreSchema: z.ZodObject<{
218
+ baseCurrency: z.ZodString;
219
+ quoteCurrency: z.ZodString;
220
+ rateDecimal: z.ZodString;
221
+ inverseRateDecimal: z.ZodOptional<z.ZodNullable<z.ZodString>>;
222
+ observedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
223
+ }, z.core.$strip>;
224
+ export declare const insertExchangeRateSchema: z.ZodObject<{
225
+ baseCurrency: z.ZodString;
226
+ quoteCurrency: z.ZodString;
227
+ rateDecimal: z.ZodString;
228
+ inverseRateDecimal: z.ZodOptional<z.ZodNullable<z.ZodString>>;
229
+ observedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
230
+ }, z.core.$strip>;
231
+ export declare const updateExchangeRateSchema: z.ZodObject<{
232
+ baseCurrency: z.ZodOptional<z.ZodString>;
233
+ quoteCurrency: z.ZodOptional<z.ZodString>;
234
+ rateDecimal: z.ZodOptional<z.ZodString>;
235
+ inverseRateDecimal: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
236
+ observedAt: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
237
+ }, z.core.$strip>;
238
+ export declare const exchangeRateListQuerySchema: z.ZodObject<{
239
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
240
+ offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
241
+ fxRateSetId: z.ZodOptional<z.ZodString>;
242
+ baseCurrency: z.ZodOptional<z.ZodString>;
243
+ quoteCurrency: z.ZodOptional<z.ZodString>;
244
+ }, z.core.$strip>;
245
+ export declare const marketPriceCatalogCoreSchema: z.ZodObject<{
246
+ marketId: z.ZodString;
247
+ priceCatalogId: z.ZodString;
248
+ isDefault: z.ZodDefault<z.ZodBoolean>;
249
+ priority: z.ZodDefault<z.ZodNumber>;
250
+ active: z.ZodDefault<z.ZodBoolean>;
251
+ notes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
252
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
253
+ }, z.core.$strip>;
254
+ export declare const insertMarketPriceCatalogSchema: z.ZodObject<{
255
+ marketId: z.ZodString;
256
+ priceCatalogId: z.ZodString;
257
+ isDefault: z.ZodDefault<z.ZodBoolean>;
258
+ priority: z.ZodDefault<z.ZodNumber>;
259
+ active: z.ZodDefault<z.ZodBoolean>;
260
+ notes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
261
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
262
+ }, z.core.$strip>;
263
+ export declare const updateMarketPriceCatalogSchema: z.ZodObject<{
264
+ marketId: z.ZodOptional<z.ZodString>;
265
+ priceCatalogId: z.ZodOptional<z.ZodString>;
266
+ isDefault: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
267
+ priority: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
268
+ active: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
269
+ notes: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
270
+ metadata: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
271
+ }, z.core.$strip>;
272
+ export declare const marketPriceCatalogListQuerySchema: z.ZodObject<{
273
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
274
+ offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
275
+ marketId: z.ZodOptional<z.ZodString>;
276
+ priceCatalogId: z.ZodOptional<z.ZodString>;
277
+ active: z.ZodOptional<z.ZodPipe<z.ZodEnum<{
278
+ 0: "0";
279
+ 1: "1";
280
+ true: "true";
281
+ false: "false";
282
+ }>, z.ZodTransform<boolean, "0" | "1" | "true" | "false">>>;
283
+ }, z.core.$strip>;
284
+ export declare const marketProductRuleCoreSchema: z.ZodObject<{
285
+ marketId: z.ZodString;
286
+ productId: z.ZodString;
287
+ optionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
288
+ priceCatalogId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
289
+ visibility: z.ZodDefault<z.ZodEnum<{
290
+ public: "public";
291
+ private: "private";
292
+ hidden: "hidden";
293
+ }>>;
294
+ sellability: z.ZodDefault<z.ZodEnum<{
295
+ sellable: "sellable";
296
+ on_request: "on_request";
297
+ unavailable: "unavailable";
298
+ }>>;
299
+ channelScope: z.ZodDefault<z.ZodEnum<{
300
+ internal: "internal";
301
+ all: "all";
302
+ b2c: "b2c";
303
+ b2b: "b2b";
304
+ }>>;
305
+ active: z.ZodDefault<z.ZodBoolean>;
306
+ availableFrom: z.ZodOptional<z.ZodNullable<z.ZodString>>;
307
+ availableTo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
308
+ notes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
309
+ }, z.core.$strip>;
310
+ export declare const insertMarketProductRuleSchema: z.ZodObject<{
311
+ marketId: z.ZodString;
312
+ productId: z.ZodString;
313
+ optionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
314
+ priceCatalogId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
315
+ visibility: z.ZodDefault<z.ZodEnum<{
316
+ public: "public";
317
+ private: "private";
318
+ hidden: "hidden";
319
+ }>>;
320
+ sellability: z.ZodDefault<z.ZodEnum<{
321
+ sellable: "sellable";
322
+ on_request: "on_request";
323
+ unavailable: "unavailable";
324
+ }>>;
325
+ channelScope: z.ZodDefault<z.ZodEnum<{
326
+ internal: "internal";
327
+ all: "all";
328
+ b2c: "b2c";
329
+ b2b: "b2b";
330
+ }>>;
331
+ active: z.ZodDefault<z.ZodBoolean>;
332
+ availableFrom: z.ZodOptional<z.ZodNullable<z.ZodString>>;
333
+ availableTo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
334
+ notes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
335
+ }, z.core.$strip>;
336
+ export declare const updateMarketProductRuleSchema: z.ZodObject<{
337
+ marketId: z.ZodOptional<z.ZodString>;
338
+ productId: z.ZodOptional<z.ZodString>;
339
+ optionId: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
340
+ priceCatalogId: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
341
+ visibility: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
342
+ public: "public";
343
+ private: "private";
344
+ hidden: "hidden";
345
+ }>>>;
346
+ sellability: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
347
+ sellable: "sellable";
348
+ on_request: "on_request";
349
+ unavailable: "unavailable";
350
+ }>>>;
351
+ channelScope: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
352
+ internal: "internal";
353
+ all: "all";
354
+ b2c: "b2c";
355
+ b2b: "b2b";
356
+ }>>>;
357
+ active: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
358
+ availableFrom: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
359
+ availableTo: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
360
+ notes: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
361
+ }, z.core.$strip>;
362
+ export declare const marketProductRuleListQuerySchema: z.ZodObject<{
363
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
364
+ offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
365
+ marketId: z.ZodOptional<z.ZodString>;
366
+ productId: z.ZodOptional<z.ZodString>;
367
+ optionId: z.ZodOptional<z.ZodString>;
368
+ sellability: z.ZodOptional<z.ZodEnum<{
369
+ sellable: "sellable";
370
+ on_request: "on_request";
371
+ unavailable: "unavailable";
372
+ }>>;
373
+ active: z.ZodOptional<z.ZodPipe<z.ZodEnum<{
374
+ 0: "0";
375
+ 1: "1";
376
+ true: "true";
377
+ false: "false";
378
+ }>, z.ZodTransform<boolean, "0" | "1" | "true" | "false">>>;
379
+ }, z.core.$strip>;
380
+ export declare const marketChannelRuleCoreSchema: z.ZodObject<{
381
+ marketId: z.ZodString;
382
+ channelId: z.ZodString;
383
+ priceCatalogId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
384
+ visibility: z.ZodDefault<z.ZodEnum<{
385
+ public: "public";
386
+ private: "private";
387
+ hidden: "hidden";
388
+ }>>;
389
+ sellability: z.ZodDefault<z.ZodEnum<{
390
+ sellable: "sellable";
391
+ on_request: "on_request";
392
+ unavailable: "unavailable";
393
+ }>>;
394
+ active: z.ZodDefault<z.ZodBoolean>;
395
+ priority: z.ZodDefault<z.ZodNumber>;
396
+ notes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
397
+ }, z.core.$strip>;
398
+ export declare const insertMarketChannelRuleSchema: z.ZodObject<{
399
+ marketId: z.ZodString;
400
+ channelId: z.ZodString;
401
+ priceCatalogId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
402
+ visibility: z.ZodDefault<z.ZodEnum<{
403
+ public: "public";
404
+ private: "private";
405
+ hidden: "hidden";
406
+ }>>;
407
+ sellability: z.ZodDefault<z.ZodEnum<{
408
+ sellable: "sellable";
409
+ on_request: "on_request";
410
+ unavailable: "unavailable";
411
+ }>>;
412
+ active: z.ZodDefault<z.ZodBoolean>;
413
+ priority: z.ZodDefault<z.ZodNumber>;
414
+ notes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
415
+ }, z.core.$strip>;
416
+ export declare const updateMarketChannelRuleSchema: z.ZodObject<{
417
+ marketId: z.ZodOptional<z.ZodString>;
418
+ channelId: z.ZodOptional<z.ZodString>;
419
+ priceCatalogId: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
420
+ visibility: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
421
+ public: "public";
422
+ private: "private";
423
+ hidden: "hidden";
424
+ }>>>;
425
+ sellability: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
426
+ sellable: "sellable";
427
+ on_request: "on_request";
428
+ unavailable: "unavailable";
429
+ }>>>;
430
+ active: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
431
+ priority: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
432
+ notes: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
433
+ }, z.core.$strip>;
434
+ export declare const marketChannelRuleListQuerySchema: z.ZodObject<{
435
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
436
+ offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
437
+ marketId: z.ZodOptional<z.ZodString>;
438
+ channelId: z.ZodOptional<z.ZodString>;
439
+ sellability: z.ZodOptional<z.ZodEnum<{
440
+ sellable: "sellable";
441
+ on_request: "on_request";
442
+ unavailable: "unavailable";
443
+ }>>;
444
+ active: z.ZodOptional<z.ZodPipe<z.ZodEnum<{
445
+ 0: "0";
446
+ 1: "1";
447
+ true: "true";
448
+ false: "false";
449
+ }>, z.ZodTransform<boolean, "0" | "1" | "true" | "false">>>;
450
+ }, z.core.$strip>;
451
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAmBvB,eAAO,MAAM,kBAAkB;;;;EAA6C,CAAA;AAC5E,eAAO,MAAM,sBAAsB;;;;EAA0C,CAAA;AAC7E,eAAO,MAAM,uBAAuB;;;;EAAoD,CAAA;AACxF,eAAO,MAAM,wBAAwB;;;;;EAA4C,CAAA;AACjF,eAAO,MAAM,kBAAkB;;;;;;;EAO7B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;iBAW3B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;iBAAmB,CAAA;AAClD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;iBAA6B,CAAA;AAC5D,eAAO,MAAM,qBAAqB;;;;;;;;;;iBAIhC,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;iBAAyB,CAAA;AAC9D,eAAO,MAAM,wBAAwB;;;;;iBAAmC,CAAA;AACxE,eAAO,MAAM,2BAA2B;;;;;;;;;;;iBAItC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;iBAOnC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;iBAA2B,CAAA;AAClE,eAAO,MAAM,0BAA0B;;;;;;;iBAAqC,CAAA;AAC5E,eAAO,MAAM,6BAA6B;;;;;;;;;;;iBAIxC,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;iBAQ9B,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;iBAAsB,CAAA;AACxD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;iBAAgC,CAAA;AAClE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;iBAGnC,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;iBAMjC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;iBAAyB,CAAA;AAC9D,eAAO,MAAM,wBAAwB;;;;;;iBAAmC,CAAA;AACxE,eAAO,MAAM,2BAA2B;;;;;;iBAItC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;iBAQvC,CAAA;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;iBAA+B,CAAA;AAC1E,eAAO,MAAM,8BAA8B;;;;;;;;iBAAyC,CAAA;AACpF,eAAO,MAAM,iCAAiC;;;;;;;;;;;iBAI5C,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;iBAYtC,CAAA;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;iBAA8B,CAAA;AACxE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;iBAAwC,CAAA;AAClF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;iBAM3C,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;iBAStC,CAAA;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;iBAA8B,CAAA;AACxE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;iBAAwC,CAAA;AAClF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;iBAK3C,CAAA"}
@@ -0,0 +1,160 @@
1
+ import { booleanQueryParam } from "@voyantjs/db/helpers";
2
+ import { z } from "zod";
3
+ const paginationSchema = z.object({
4
+ limit: z.coerce.number().int().min(1).max(200).default(50),
5
+ offset: z.coerce.number().int().min(0).default(0),
6
+ });
7
+ const languageTagSchema = z
8
+ .string()
9
+ .min(2)
10
+ .max(35)
11
+ .regex(/^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})*$/);
12
+ const currencyCodeSchema = z
13
+ .string()
14
+ .length(3)
15
+ .regex(/^[A-Z]{3}$/);
16
+ const numericStringSchema = z.string().regex(/^\d+(\.\d+)?$/);
17
+ export const marketStatusSchema = z.enum(["active", "inactive", "archived"]);
18
+ export const marketVisibilitySchema = z.enum(["public", "private", "hidden"]);
19
+ export const marketSellabilitySchema = z.enum(["sellable", "on_request", "unavailable"]);
20
+ export const marketChannelScopeSchema = z.enum(["all", "b2c", "b2b", "internal"]);
21
+ export const fxRateSourceSchema = z.enum([
22
+ "manual",
23
+ "ecb",
24
+ "custom",
25
+ "channel",
26
+ "supplier",
27
+ "other",
28
+ ]);
29
+ export const marketCoreSchema = z.object({
30
+ code: z.string().min(1).max(50),
31
+ name: z.string().min(1).max(255),
32
+ status: marketStatusSchema.default("active"),
33
+ regionCode: z.string().max(20).nullable().optional(),
34
+ countryCode: z.string().max(2).nullable().optional(),
35
+ defaultLanguageTag: languageTagSchema,
36
+ defaultCurrency: currencyCodeSchema,
37
+ timezone: z.string().max(100).nullable().optional(),
38
+ taxContext: z.string().max(255).nullable().optional(),
39
+ metadata: z.record(z.string(), z.unknown()).nullable().optional(),
40
+ });
41
+ export const insertMarketSchema = marketCoreSchema;
42
+ export const updateMarketSchema = marketCoreSchema.partial();
43
+ export const marketListQuerySchema = paginationSchema.extend({
44
+ status: marketStatusSchema.optional(),
45
+ countryCode: z.string().optional(),
46
+ search: z.string().optional(),
47
+ });
48
+ export const marketLocaleCoreSchema = z.object({
49
+ languageTag: languageTagSchema,
50
+ isDefault: z.boolean().default(false),
51
+ sortOrder: z.number().int().min(0).default(0),
52
+ active: z.boolean().default(true),
53
+ });
54
+ export const insertMarketLocaleSchema = marketLocaleCoreSchema;
55
+ export const updateMarketLocaleSchema = marketLocaleCoreSchema.partial();
56
+ export const marketLocaleListQuerySchema = paginationSchema.extend({
57
+ marketId: z.string().optional(),
58
+ languageTag: languageTagSchema.optional(),
59
+ active: booleanQueryParam.optional(),
60
+ });
61
+ export const marketCurrencyCoreSchema = z.object({
62
+ currencyCode: currencyCodeSchema,
63
+ isDefault: z.boolean().default(false),
64
+ isSettlement: z.boolean().default(false),
65
+ isReporting: z.boolean().default(false),
66
+ sortOrder: z.number().int().min(0).default(0),
67
+ active: z.boolean().default(true),
68
+ });
69
+ export const insertMarketCurrencySchema = marketCurrencyCoreSchema;
70
+ export const updateMarketCurrencySchema = marketCurrencyCoreSchema.partial();
71
+ export const marketCurrencyListQuerySchema = paginationSchema.extend({
72
+ marketId: z.string().optional(),
73
+ currencyCode: currencyCodeSchema.optional(),
74
+ active: booleanQueryParam.optional(),
75
+ });
76
+ export const fxRateSetCoreSchema = z.object({
77
+ source: fxRateSourceSchema.default("manual"),
78
+ baseCurrency: currencyCodeSchema,
79
+ effectiveAt: z.string().datetime(),
80
+ observedAt: z.string().datetime().nullable().optional(),
81
+ sourceReference: z.string().max(255).nullable().optional(),
82
+ notes: z.string().nullable().optional(),
83
+ metadata: z.record(z.string(), z.unknown()).nullable().optional(),
84
+ });
85
+ export const insertFxRateSetSchema = fxRateSetCoreSchema;
86
+ export const updateFxRateSetSchema = fxRateSetCoreSchema.partial();
87
+ export const fxRateSetListQuerySchema = paginationSchema.extend({
88
+ source: fxRateSourceSchema.optional(),
89
+ baseCurrency: currencyCodeSchema.optional(),
90
+ });
91
+ export const exchangeRateCoreSchema = z.object({
92
+ baseCurrency: currencyCodeSchema,
93
+ quoteCurrency: currencyCodeSchema,
94
+ rateDecimal: numericStringSchema,
95
+ inverseRateDecimal: numericStringSchema.nullable().optional(),
96
+ observedAt: z.string().datetime().nullable().optional(),
97
+ });
98
+ export const insertExchangeRateSchema = exchangeRateCoreSchema;
99
+ export const updateExchangeRateSchema = exchangeRateCoreSchema.partial();
100
+ export const exchangeRateListQuerySchema = paginationSchema.extend({
101
+ fxRateSetId: z.string().optional(),
102
+ baseCurrency: currencyCodeSchema.optional(),
103
+ quoteCurrency: currencyCodeSchema.optional(),
104
+ });
105
+ export const marketPriceCatalogCoreSchema = z.object({
106
+ marketId: z.string(),
107
+ priceCatalogId: z.string(),
108
+ isDefault: z.boolean().default(false),
109
+ priority: z.number().int().default(0),
110
+ active: z.boolean().default(true),
111
+ notes: z.string().nullable().optional(),
112
+ metadata: z.record(z.string(), z.unknown()).nullable().optional(),
113
+ });
114
+ export const insertMarketPriceCatalogSchema = marketPriceCatalogCoreSchema;
115
+ export const updateMarketPriceCatalogSchema = marketPriceCatalogCoreSchema.partial();
116
+ export const marketPriceCatalogListQuerySchema = paginationSchema.extend({
117
+ marketId: z.string().optional(),
118
+ priceCatalogId: z.string().optional(),
119
+ active: booleanQueryParam.optional(),
120
+ });
121
+ export const marketProductRuleCoreSchema = z.object({
122
+ marketId: z.string(),
123
+ productId: z.string(),
124
+ optionId: z.string().nullable().optional(),
125
+ priceCatalogId: z.string().nullable().optional(),
126
+ visibility: marketVisibilitySchema.default("public"),
127
+ sellability: marketSellabilitySchema.default("sellable"),
128
+ channelScope: marketChannelScopeSchema.default("all"),
129
+ active: z.boolean().default(true),
130
+ availableFrom: z.string().date().nullable().optional(),
131
+ availableTo: z.string().date().nullable().optional(),
132
+ notes: z.string().nullable().optional(),
133
+ });
134
+ export const insertMarketProductRuleSchema = marketProductRuleCoreSchema;
135
+ export const updateMarketProductRuleSchema = marketProductRuleCoreSchema.partial();
136
+ export const marketProductRuleListQuerySchema = paginationSchema.extend({
137
+ marketId: z.string().optional(),
138
+ productId: z.string().optional(),
139
+ optionId: z.string().optional(),
140
+ sellability: marketSellabilitySchema.optional(),
141
+ active: booleanQueryParam.optional(),
142
+ });
143
+ export const marketChannelRuleCoreSchema = z.object({
144
+ marketId: z.string(),
145
+ channelId: z.string(),
146
+ priceCatalogId: z.string().nullable().optional(),
147
+ visibility: marketVisibilitySchema.default("public"),
148
+ sellability: marketSellabilitySchema.default("sellable"),
149
+ active: z.boolean().default(true),
150
+ priority: z.number().int().default(0),
151
+ notes: z.string().nullable().optional(),
152
+ });
153
+ export const insertMarketChannelRuleSchema = marketChannelRuleCoreSchema;
154
+ export const updateMarketChannelRuleSchema = marketChannelRuleCoreSchema.partial();
155
+ export const marketChannelRuleListQuerySchema = paginationSchema.extend({
156
+ marketId: z.string().optional(),
157
+ channelId: z.string().optional(),
158
+ sellability: marketSellabilitySchema.optional(),
159
+ active: booleanQueryParam.optional(),
160
+ });
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@voyantjs/markets",
3
+ "version": "0.1.0",
4
+ "license": "FSL-1.1-Apache-2.0",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "import": "./dist/index.js"
10
+ },
11
+ "./schema": {
12
+ "types": "./dist/schema.d.ts",
13
+ "import": "./dist/schema.js"
14
+ },
15
+ "./validation": {
16
+ "types": "./dist/validation.d.ts",
17
+ "import": "./dist/validation.js"
18
+ },
19
+ "./routes": {
20
+ "types": "./dist/routes.d.ts",
21
+ "import": "./dist/routes.js"
22
+ }
23
+ },
24
+ "dependencies": {
25
+ "drizzle-orm": "^0.45.2",
26
+ "hono": "^4.12.10",
27
+ "zod": "^4.3.6",
28
+ "@voyantjs/core": "0.1.0",
29
+ "@voyantjs/db": "0.1.0",
30
+ "@voyantjs/hono": "0.1.0"
31
+ },
32
+ "devDependencies": {
33
+ "typescript": "^6.0.2",
34
+ "@voyantjs/voyant-typescript-config": "0.1.0"
35
+ },
36
+ "files": [
37
+ "dist"
38
+ ],
39
+ "publishConfig": {
40
+ "access": "public"
41
+ },
42
+ "scripts": {
43
+ "typecheck": "tsc --noEmit",
44
+ "lint": "biome check src/",
45
+ "test": "vitest run",
46
+ "build": "tsc -p tsconfig.json",
47
+ "clean": "rm -rf dist"
48
+ },
49
+ "main": "./dist/index.js",
50
+ "types": "./dist/index.d.ts"
51
+ }