@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,459 @@
1
+ import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
2
+ import type { z } from "zod";
3
+ import type { exchangeRateListQuerySchema, fxRateSetListQuerySchema, insertExchangeRateSchema, insertFxRateSetSchema, insertMarketChannelRuleSchema, insertMarketCurrencySchema, insertMarketLocaleSchema, insertMarketPriceCatalogSchema, insertMarketProductRuleSchema, insertMarketSchema, marketChannelRuleListQuerySchema, marketCurrencyListQuerySchema, marketListQuerySchema, marketLocaleListQuerySchema, marketPriceCatalogListQuerySchema, marketProductRuleListQuerySchema, updateExchangeRateSchema, updateFxRateSetSchema, updateMarketChannelRuleSchema, updateMarketCurrencySchema, updateMarketLocaleSchema, updateMarketPriceCatalogSchema, updateMarketProductRuleSchema, updateMarketSchema } from "./validation.js";
4
+ type MarketListQuery = z.infer<typeof marketListQuerySchema>;
5
+ type MarketLocaleListQuery = z.infer<typeof marketLocaleListQuerySchema>;
6
+ type MarketCurrencyListQuery = z.infer<typeof marketCurrencyListQuerySchema>;
7
+ type FxRateSetListQuery = z.infer<typeof fxRateSetListQuerySchema>;
8
+ type ExchangeRateListQuery = z.infer<typeof exchangeRateListQuerySchema>;
9
+ type MarketPriceCatalogListQuery = z.infer<typeof marketPriceCatalogListQuerySchema>;
10
+ type MarketProductRuleListQuery = z.infer<typeof marketProductRuleListQuerySchema>;
11
+ type MarketChannelRuleListQuery = z.infer<typeof marketChannelRuleListQuerySchema>;
12
+ type CreateMarketInput = z.infer<typeof insertMarketSchema>;
13
+ type UpdateMarketInput = z.infer<typeof updateMarketSchema>;
14
+ type CreateMarketLocaleInput = z.infer<typeof insertMarketLocaleSchema>;
15
+ type UpdateMarketLocaleInput = z.infer<typeof updateMarketLocaleSchema>;
16
+ type CreateMarketCurrencyInput = z.infer<typeof insertMarketCurrencySchema>;
17
+ type UpdateMarketCurrencyInput = z.infer<typeof updateMarketCurrencySchema>;
18
+ type CreateFxRateSetInput = z.infer<typeof insertFxRateSetSchema>;
19
+ type UpdateFxRateSetInput = z.infer<typeof updateFxRateSetSchema>;
20
+ type CreateExchangeRateInput = z.infer<typeof insertExchangeRateSchema>;
21
+ type UpdateExchangeRateInput = z.infer<typeof updateExchangeRateSchema>;
22
+ type CreateMarketPriceCatalogInput = z.infer<typeof insertMarketPriceCatalogSchema>;
23
+ type UpdateMarketPriceCatalogInput = z.infer<typeof updateMarketPriceCatalogSchema>;
24
+ type CreateMarketProductRuleInput = z.infer<typeof insertMarketProductRuleSchema>;
25
+ type UpdateMarketProductRuleInput = z.infer<typeof updateMarketProductRuleSchema>;
26
+ type CreateMarketChannelRuleInput = z.infer<typeof insertMarketChannelRuleSchema>;
27
+ type UpdateMarketChannelRuleInput = z.infer<typeof updateMarketChannelRuleSchema>;
28
+ export declare const marketsService: {
29
+ listMarkets(db: PostgresJsDatabase, query: MarketListQuery): Promise<{
30
+ data: {
31
+ id: string;
32
+ code: string;
33
+ name: string;
34
+ status: "active" | "inactive" | "archived";
35
+ regionCode: string | null;
36
+ countryCode: string | null;
37
+ defaultLanguageTag: string;
38
+ defaultCurrency: string;
39
+ timezone: string | null;
40
+ taxContext: string | null;
41
+ metadata: Record<string, unknown> | null;
42
+ createdAt: Date;
43
+ updatedAt: Date;
44
+ }[];
45
+ total: number;
46
+ limit: number;
47
+ offset: number;
48
+ }>;
49
+ getMarketById(db: PostgresJsDatabase, id: string): Promise<{
50
+ id: string;
51
+ code: string;
52
+ name: string;
53
+ status: "active" | "inactive" | "archived";
54
+ regionCode: string | null;
55
+ countryCode: string | null;
56
+ defaultLanguageTag: string;
57
+ defaultCurrency: string;
58
+ timezone: string | null;
59
+ taxContext: string | null;
60
+ metadata: Record<string, unknown> | null;
61
+ createdAt: Date;
62
+ updatedAt: Date;
63
+ } | null>;
64
+ createMarket(db: PostgresJsDatabase, data: CreateMarketInput): Promise<{
65
+ id: string;
66
+ name: string;
67
+ code: string;
68
+ status: "active" | "inactive" | "archived";
69
+ regionCode: string | null;
70
+ countryCode: string | null;
71
+ defaultLanguageTag: string;
72
+ defaultCurrency: string;
73
+ timezone: string | null;
74
+ taxContext: string | null;
75
+ metadata: Record<string, unknown> | null;
76
+ createdAt: Date;
77
+ updatedAt: Date;
78
+ } | null>;
79
+ updateMarket(db: PostgresJsDatabase, id: string, data: UpdateMarketInput): Promise<{
80
+ id: string;
81
+ code: string;
82
+ name: string;
83
+ status: "active" | "inactive" | "archived";
84
+ regionCode: string | null;
85
+ countryCode: string | null;
86
+ defaultLanguageTag: string;
87
+ defaultCurrency: string;
88
+ timezone: string | null;
89
+ taxContext: string | null;
90
+ metadata: Record<string, unknown> | null;
91
+ createdAt: Date;
92
+ updatedAt: Date;
93
+ } | null>;
94
+ deleteMarket(db: PostgresJsDatabase, id: string): Promise<{
95
+ id: string;
96
+ } | null>;
97
+ listMarketLocales(db: PostgresJsDatabase, query: MarketLocaleListQuery): Promise<{
98
+ data: {
99
+ id: string;
100
+ marketId: string;
101
+ languageTag: string;
102
+ isDefault: boolean;
103
+ sortOrder: number;
104
+ active: boolean;
105
+ createdAt: Date;
106
+ updatedAt: Date;
107
+ }[];
108
+ total: number;
109
+ limit: number;
110
+ offset: number;
111
+ }>;
112
+ createMarketLocale(db: PostgresJsDatabase, marketId: string, data: CreateMarketLocaleInput): Promise<{
113
+ id: string;
114
+ active: boolean;
115
+ createdAt: Date;
116
+ updatedAt: Date;
117
+ marketId: string;
118
+ languageTag: string;
119
+ isDefault: boolean;
120
+ sortOrder: number;
121
+ } | null>;
122
+ updateMarketLocale(db: PostgresJsDatabase, id: string, data: UpdateMarketLocaleInput): Promise<{
123
+ id: string;
124
+ marketId: string;
125
+ languageTag: string;
126
+ isDefault: boolean;
127
+ sortOrder: number;
128
+ active: boolean;
129
+ createdAt: Date;
130
+ updatedAt: Date;
131
+ } | null>;
132
+ deleteMarketLocale(db: PostgresJsDatabase, id: string): Promise<{
133
+ id: string;
134
+ } | null>;
135
+ listMarketCurrencies(db: PostgresJsDatabase, query: MarketCurrencyListQuery): Promise<{
136
+ data: {
137
+ id: string;
138
+ marketId: string;
139
+ currencyCode: string;
140
+ isDefault: boolean;
141
+ isSettlement: boolean;
142
+ isReporting: boolean;
143
+ sortOrder: number;
144
+ active: boolean;
145
+ createdAt: Date;
146
+ updatedAt: Date;
147
+ }[];
148
+ total: number;
149
+ limit: number;
150
+ offset: number;
151
+ }>;
152
+ createMarketCurrency(db: PostgresJsDatabase, marketId: string, data: CreateMarketCurrencyInput): Promise<{
153
+ id: string;
154
+ active: boolean;
155
+ createdAt: Date;
156
+ updatedAt: Date;
157
+ marketId: string;
158
+ isDefault: boolean;
159
+ sortOrder: number;
160
+ currencyCode: string;
161
+ isSettlement: boolean;
162
+ isReporting: boolean;
163
+ } | null>;
164
+ updateMarketCurrency(db: PostgresJsDatabase, id: string, data: UpdateMarketCurrencyInput): Promise<{
165
+ id: string;
166
+ marketId: string;
167
+ currencyCode: string;
168
+ isDefault: boolean;
169
+ isSettlement: boolean;
170
+ isReporting: boolean;
171
+ sortOrder: number;
172
+ active: boolean;
173
+ createdAt: Date;
174
+ updatedAt: Date;
175
+ } | null>;
176
+ deleteMarketCurrency(db: PostgresJsDatabase, id: string): Promise<{
177
+ id: string;
178
+ } | null>;
179
+ listFxRateSets(db: PostgresJsDatabase, query: FxRateSetListQuery): Promise<{
180
+ data: {
181
+ id: string;
182
+ source: "supplier" | "manual" | "ecb" | "custom" | "channel" | "other";
183
+ baseCurrency: string;
184
+ effectiveAt: Date;
185
+ observedAt: Date | null;
186
+ sourceReference: string | null;
187
+ notes: string | null;
188
+ metadata: Record<string, unknown> | null;
189
+ createdAt: Date;
190
+ }[];
191
+ total: number;
192
+ limit: number;
193
+ offset: number;
194
+ }>;
195
+ getFxRateSetById(db: PostgresJsDatabase, id: string): Promise<{
196
+ id: string;
197
+ source: "supplier" | "manual" | "ecb" | "custom" | "channel" | "other";
198
+ baseCurrency: string;
199
+ effectiveAt: Date;
200
+ observedAt: Date | null;
201
+ sourceReference: string | null;
202
+ notes: string | null;
203
+ metadata: Record<string, unknown> | null;
204
+ createdAt: Date;
205
+ } | null>;
206
+ createFxRateSet(db: PostgresJsDatabase, data: CreateFxRateSetInput): Promise<{
207
+ id: string;
208
+ metadata: Record<string, unknown> | null;
209
+ createdAt: Date;
210
+ source: "supplier" | "manual" | "ecb" | "custom" | "channel" | "other";
211
+ baseCurrency: string;
212
+ effectiveAt: Date;
213
+ observedAt: Date | null;
214
+ sourceReference: string | null;
215
+ notes: string | null;
216
+ } | null>;
217
+ updateFxRateSet(db: PostgresJsDatabase, id: string, data: UpdateFxRateSetInput): Promise<{
218
+ id: string;
219
+ source: "supplier" | "manual" | "ecb" | "custom" | "channel" | "other";
220
+ baseCurrency: string;
221
+ effectiveAt: Date;
222
+ observedAt: Date | null;
223
+ sourceReference: string | null;
224
+ notes: string | null;
225
+ metadata: Record<string, unknown> | null;
226
+ createdAt: Date;
227
+ } | null>;
228
+ deleteFxRateSet(db: PostgresJsDatabase, id: string): Promise<{
229
+ id: string;
230
+ } | null>;
231
+ listExchangeRates(db: PostgresJsDatabase, query: ExchangeRateListQuery): Promise<{
232
+ data: {
233
+ id: string;
234
+ fxRateSetId: string;
235
+ baseCurrency: string;
236
+ quoteCurrency: string;
237
+ rateDecimal: string;
238
+ inverseRateDecimal: string | null;
239
+ observedAt: Date | null;
240
+ createdAt: Date;
241
+ }[];
242
+ total: number;
243
+ limit: number;
244
+ offset: number;
245
+ }>;
246
+ createExchangeRate(db: PostgresJsDatabase, fxRateSetId: string, data: CreateExchangeRateInput): Promise<{
247
+ id: string;
248
+ createdAt: Date;
249
+ baseCurrency: string;
250
+ observedAt: Date | null;
251
+ fxRateSetId: string;
252
+ quoteCurrency: string;
253
+ rateDecimal: string;
254
+ inverseRateDecimal: string | null;
255
+ } | null>;
256
+ updateExchangeRate(db: PostgresJsDatabase, id: string, data: UpdateExchangeRateInput): Promise<{
257
+ id: string;
258
+ fxRateSetId: string;
259
+ baseCurrency: string;
260
+ quoteCurrency: string;
261
+ rateDecimal: string;
262
+ inverseRateDecimal: string | null;
263
+ observedAt: Date | null;
264
+ createdAt: Date;
265
+ } | null>;
266
+ deleteExchangeRate(db: PostgresJsDatabase, id: string): Promise<{
267
+ id: string;
268
+ } | null>;
269
+ listMarketPriceCatalogs(db: PostgresJsDatabase, query: MarketPriceCatalogListQuery): Promise<{
270
+ data: {
271
+ id: string;
272
+ marketId: string;
273
+ priceCatalogId: string;
274
+ isDefault: boolean;
275
+ priority: number;
276
+ active: boolean;
277
+ notes: string | null;
278
+ metadata: Record<string, unknown> | null;
279
+ createdAt: Date;
280
+ updatedAt: Date;
281
+ }[];
282
+ total: number;
283
+ limit: number;
284
+ offset: number;
285
+ }>;
286
+ getMarketPriceCatalogById(db: PostgresJsDatabase, id: string): Promise<{
287
+ id: string;
288
+ marketId: string;
289
+ priceCatalogId: string;
290
+ isDefault: boolean;
291
+ priority: number;
292
+ active: boolean;
293
+ notes: string | null;
294
+ metadata: Record<string, unknown> | null;
295
+ createdAt: Date;
296
+ updatedAt: Date;
297
+ } | null>;
298
+ createMarketPriceCatalog(db: PostgresJsDatabase, data: CreateMarketPriceCatalogInput): Promise<{
299
+ id: string;
300
+ active: boolean;
301
+ metadata: Record<string, unknown> | null;
302
+ createdAt: Date;
303
+ updatedAt: Date;
304
+ marketId: string;
305
+ isDefault: boolean;
306
+ notes: string | null;
307
+ priceCatalogId: string;
308
+ priority: number;
309
+ } | null>;
310
+ updateMarketPriceCatalog(db: PostgresJsDatabase, id: string, data: UpdateMarketPriceCatalogInput): Promise<{
311
+ id: string;
312
+ marketId: string;
313
+ priceCatalogId: string;
314
+ isDefault: boolean;
315
+ priority: number;
316
+ active: boolean;
317
+ notes: string | null;
318
+ metadata: Record<string, unknown> | null;
319
+ createdAt: Date;
320
+ updatedAt: Date;
321
+ } | null>;
322
+ deleteMarketPriceCatalog(db: PostgresJsDatabase, id: string): Promise<{
323
+ id: string;
324
+ } | null>;
325
+ listMarketProductRules(db: PostgresJsDatabase, query: MarketProductRuleListQuery): Promise<{
326
+ data: {
327
+ id: string;
328
+ marketId: string;
329
+ productId: string;
330
+ optionId: string | null;
331
+ priceCatalogId: string | null;
332
+ visibility: "public" | "private" | "hidden";
333
+ sellability: "sellable" | "on_request" | "unavailable";
334
+ channelScope: "internal" | "all" | "b2c" | "b2b";
335
+ active: boolean;
336
+ availableFrom: string | null;
337
+ availableTo: string | null;
338
+ notes: string | null;
339
+ createdAt: Date;
340
+ updatedAt: Date;
341
+ }[];
342
+ total: number;
343
+ limit: number;
344
+ offset: number;
345
+ }>;
346
+ getMarketProductRuleById(db: PostgresJsDatabase, id: string): Promise<{
347
+ id: string;
348
+ marketId: string;
349
+ productId: string;
350
+ optionId: string | null;
351
+ priceCatalogId: string | null;
352
+ visibility: "public" | "private" | "hidden";
353
+ sellability: "sellable" | "on_request" | "unavailable";
354
+ channelScope: "internal" | "all" | "b2c" | "b2b";
355
+ active: boolean;
356
+ availableFrom: string | null;
357
+ availableTo: string | null;
358
+ notes: string | null;
359
+ createdAt: Date;
360
+ updatedAt: Date;
361
+ } | null>;
362
+ createMarketProductRule(db: PostgresJsDatabase, data: CreateMarketProductRuleInput): Promise<{
363
+ id: string;
364
+ active: boolean;
365
+ createdAt: Date;
366
+ updatedAt: Date;
367
+ marketId: string;
368
+ notes: string | null;
369
+ priceCatalogId: string | null;
370
+ productId: string;
371
+ optionId: string | null;
372
+ visibility: "public" | "private" | "hidden";
373
+ sellability: "sellable" | "on_request" | "unavailable";
374
+ channelScope: "internal" | "all" | "b2c" | "b2b";
375
+ availableFrom: string | null;
376
+ availableTo: string | null;
377
+ } | null>;
378
+ updateMarketProductRule(db: PostgresJsDatabase, id: string, data: UpdateMarketProductRuleInput): Promise<{
379
+ id: string;
380
+ marketId: string;
381
+ productId: string;
382
+ optionId: string | null;
383
+ priceCatalogId: string | null;
384
+ visibility: "public" | "private" | "hidden";
385
+ sellability: "sellable" | "on_request" | "unavailable";
386
+ channelScope: "internal" | "all" | "b2c" | "b2b";
387
+ active: boolean;
388
+ availableFrom: string | null;
389
+ availableTo: string | null;
390
+ notes: string | null;
391
+ createdAt: Date;
392
+ updatedAt: Date;
393
+ } | null>;
394
+ deleteMarketProductRule(db: PostgresJsDatabase, id: string): Promise<{
395
+ id: string;
396
+ } | null>;
397
+ listMarketChannelRules(db: PostgresJsDatabase, query: MarketChannelRuleListQuery): Promise<{
398
+ data: {
399
+ id: string;
400
+ marketId: string;
401
+ channelId: string;
402
+ priceCatalogId: string | null;
403
+ visibility: "public" | "private" | "hidden";
404
+ sellability: "sellable" | "on_request" | "unavailable";
405
+ active: boolean;
406
+ priority: number;
407
+ notes: string | null;
408
+ createdAt: Date;
409
+ updatedAt: Date;
410
+ }[];
411
+ total: number;
412
+ limit: number;
413
+ offset: number;
414
+ }>;
415
+ getMarketChannelRuleById(db: PostgresJsDatabase, id: string): Promise<{
416
+ id: string;
417
+ marketId: string;
418
+ channelId: string;
419
+ priceCatalogId: string | null;
420
+ visibility: "public" | "private" | "hidden";
421
+ sellability: "sellable" | "on_request" | "unavailable";
422
+ active: boolean;
423
+ priority: number;
424
+ notes: string | null;
425
+ createdAt: Date;
426
+ updatedAt: Date;
427
+ } | null>;
428
+ createMarketChannelRule(db: PostgresJsDatabase, data: CreateMarketChannelRuleInput): Promise<{
429
+ id: string;
430
+ active: boolean;
431
+ createdAt: Date;
432
+ updatedAt: Date;
433
+ marketId: string;
434
+ notes: string | null;
435
+ priceCatalogId: string | null;
436
+ priority: number;
437
+ visibility: "public" | "private" | "hidden";
438
+ sellability: "sellable" | "on_request" | "unavailable";
439
+ channelId: string;
440
+ } | null>;
441
+ updateMarketChannelRule(db: PostgresJsDatabase, id: string, data: UpdateMarketChannelRuleInput): Promise<{
442
+ id: string;
443
+ marketId: string;
444
+ channelId: string;
445
+ priceCatalogId: string | null;
446
+ visibility: "public" | "private" | "hidden";
447
+ sellability: "sellable" | "on_request" | "unavailable";
448
+ active: boolean;
449
+ priority: number;
450
+ notes: string | null;
451
+ createdAt: Date;
452
+ updatedAt: Date;
453
+ } | null>;
454
+ deleteMarketChannelRule(db: PostgresJsDatabase, id: string): Promise<{
455
+ id: string;
456
+ } | null>;
457
+ };
458
+ export {};
459
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}