@phystack/products 4.3.40-dev

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 (44) hide show
  1. package/CHANGELOG.md +2736 -0
  2. package/dist/api.d.ts +11 -0
  3. package/dist/api.js +49 -0
  4. package/dist/helpers.d.ts +2 -0
  5. package/dist/helpers.js +11 -0
  6. package/dist/index.d.ts +7 -0
  7. package/dist/index.js +29 -0
  8. package/dist/index.test.d.ts +1 -0
  9. package/dist/index.test.js +1423 -0
  10. package/dist/services/grid-product-service-admin.d.ts +23 -0
  11. package/dist/services/grid-product-service-admin.js +120 -0
  12. package/dist/services/grid-product-service-client.d.ts +80 -0
  13. package/dist/services/grid-product-service-client.js +633 -0
  14. package/dist/services/grid-product-service-interface.d.ts +47 -0
  15. package/dist/services/grid-product-service-interface.js +2 -0
  16. package/dist/services/http-service.d.ts +14 -0
  17. package/dist/services/http-service.js +44 -0
  18. package/dist/types/grid-product.d.ts +458 -0
  19. package/dist/types/grid-product.js +38 -0
  20. package/dist/types/iso-currency-codes.d.ts +182 -0
  21. package/dist/types/iso-currency-codes.js +186 -0
  22. package/dist/types/iso-language-ids.d.ts +170 -0
  23. package/dist/types/iso-language-ids.js +174 -0
  24. package/dist/types/parameters.d.ts +242 -0
  25. package/dist/types/parameters.js +99 -0
  26. package/dist/utils.d.ts +27 -0
  27. package/dist/utils.js +187 -0
  28. package/jest.config.js +10 -0
  29. package/jest.setup.js +1 -0
  30. package/package.json +31 -0
  31. package/src/api.ts +47 -0
  32. package/src/helpers.ts +7 -0
  33. package/src/index.test.ts +1526 -0
  34. package/src/index.ts +8 -0
  35. package/src/services/grid-product-service-admin.ts +123 -0
  36. package/src/services/grid-product-service-client.ts +995 -0
  37. package/src/services/grid-product-service-interface.ts +105 -0
  38. package/src/services/http-service.ts +50 -0
  39. package/src/types/grid-product.ts +548 -0
  40. package/src/types/iso-currency-codes.ts +182 -0
  41. package/src/types/iso-language-ids.ts +170 -0
  42. package/src/types/parameters.ts +231 -0
  43. package/src/utils.ts +325 -0
  44. package/tsconfig.json +20 -0
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,14 @@
1
+ import { AxiosRequestConfig } from 'axios';
2
+ type Options = {
3
+ baseUrl?: string;
4
+ accessToken?: string;
5
+ };
6
+ declare class HttpService {
7
+ private readonly client;
8
+ constructor({ baseUrl, accessToken }: Options);
9
+ get: <T = any>(path: string, config: AxiosRequestConfig) => Promise<T>;
10
+ post: <T = any>(path: string, data?: any, config?: AxiosRequestConfig) => Promise<T>;
11
+ patch: <T = any>(path: string, data?: any, config?: AxiosRequestConfig) => Promise<T>;
12
+ delete: <T = any>(path: string, config?: AxiosRequestConfig) => Promise<T>;
13
+ }
14
+ export default HttpService;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const axios_1 = __importDefault(require("axios"));
16
+ class HttpService {
17
+ constructor({ baseUrl, accessToken }) {
18
+ this.get = (path, config) => __awaiter(this, void 0, void 0, function* () {
19
+ const { data } = yield this.client.get(path, config);
20
+ return data;
21
+ });
22
+ this.post = (path, data, config) => __awaiter(this, void 0, void 0, function* () {
23
+ const response = yield this.client.post(path, data, config);
24
+ return response.data;
25
+ });
26
+ this.patch = (path, data, config) => __awaiter(this, void 0, void 0, function* () {
27
+ const response = yield this.client.patch(path, data, config);
28
+ return response.data;
29
+ });
30
+ this.delete = (path, config) => __awaiter(this, void 0, void 0, function* () {
31
+ const response = yield this.client.delete(path, config);
32
+ return response.data;
33
+ });
34
+ this.client = axios_1.default.create({
35
+ baseURL: baseUrl !== null && baseUrl !== void 0 ? baseUrl : '',
36
+ headers: accessToken
37
+ ? {
38
+ 'x-api-key': accessToken,
39
+ }
40
+ : {},
41
+ });
42
+ }
43
+ }
44
+ exports.default = HttpService;
@@ -0,0 +1,458 @@
1
+ import { IsoLanguageIds } from './iso-language-ids';
2
+ export declare enum DataResidencyEnum {
3
+ 'EU' = "EU",
4
+ 'US' = "US",
5
+ 'UAE' = "UAE",
6
+ 'AU' = "AU",
7
+ 'IN' = "IN",
8
+ 'QA' = "QA",
9
+ 'DEV' = "DEV"
10
+ }
11
+ export type FacetsType = {
12
+ [propertyName: string]: {
13
+ [property: string]: any;
14
+ readonly count?: number;
15
+ };
16
+ } | undefined;
17
+ export type FilterByLanguage = {
18
+ [key: string]: {
19
+ [language: string]: string[];
20
+ };
21
+ };
22
+ export type FilterByGroup = {
23
+ [key: string]: {
24
+ [group: string]: string[] | {
25
+ min: number;
26
+ max: number;
27
+ isoCurrencyCode: string;
28
+ };
29
+ };
30
+ };
31
+ export type SortOptionsResponse = {
32
+ sortOptions: {
33
+ [isoLanguageId: string]: string[];
34
+ };
35
+ sortOptionsEnum: {
36
+ [isoLanguageId: string]: string[];
37
+ };
38
+ };
39
+ export declare enum PriceListTypeEnum {
40
+ Standard = "Standard",
41
+ Promotional = "Promotional",
42
+ StandardConditional = "StandardConditional"
43
+ }
44
+ export declare enum ProductStatusEnum {
45
+ Active = "Active",
46
+ Inactive = "Inactive",
47
+ Discontinued = "Discontinued",
48
+ Dormant = "Dormant",
49
+ Frozen = "Frozen",
50
+ Replaced = "Replaced",
51
+ Obsolete = "Obsolete",
52
+ Abandoned = "Abandoned",
53
+ Blocked = "Blocked"
54
+ }
55
+ export declare enum ProductRelationshipTypes {
56
+ Recommended = "Recommended",
57
+ StyleWith = "StyleWith",
58
+ Similar = "Similar"
59
+ }
60
+ export interface ProductShortDescription {
61
+ isoLanguageId: IsoLanguageIds;
62
+ productShortDescription: string;
63
+ }
64
+ export interface ProductInternalName {
65
+ isoLanguageId: IsoLanguageIds;
66
+ productInternalName: string;
67
+ }
68
+ export interface ProductStorageInstructions {
69
+ isoLanguageId: IsoLanguageIds;
70
+ storageInstructions: string;
71
+ }
72
+ export interface ProductConsumerStorageInstruction {
73
+ isoLanguageId: IsoLanguageIds;
74
+ consumerStorageInstruction: string;
75
+ }
76
+ export interface ProductShippingInstruction {
77
+ isoLanguageId: IsoLanguageIds;
78
+ productShippingInstruction: string;
79
+ }
80
+ export interface ProductName {
81
+ isoLanguageId: IsoLanguageIds;
82
+ productName: string;
83
+ }
84
+ export interface ProductDescription {
85
+ isoLanguageId: IsoLanguageIds;
86
+ productDescription: string;
87
+ }
88
+ export interface RelatedProductGroup {
89
+ relatedProductGroupId: string;
90
+ productRelationshipType: ProductRelationshipTypes;
91
+ }
92
+ export interface VariantProductName {
93
+ isoLanguageId: IsoLanguageIds;
94
+ productName: string;
95
+ }
96
+ export interface Variant {
97
+ productId: string;
98
+ productGroupId: string;
99
+ globalTradeItemNumber?: string[];
100
+ gtinName?: string[];
101
+ europeanArticleNumber?: string[];
102
+ universalProductCode?: string[];
103
+ productName?: VariantProductName[];
104
+ periodStartDate?: string;
105
+ periodEndDate?: string;
106
+ color?: string;
107
+ colorImageUrl?: string;
108
+ colorRgb?: string;
109
+ style?: string;
110
+ size?: string;
111
+ productLink?: string;
112
+ }
113
+ export interface ProductBrand {
114
+ isoLanguageId: IsoLanguageIds;
115
+ brandName: string;
116
+ brandDescription?: string;
117
+ brandMark?: string;
118
+ brandTrademark?: string;
119
+ brandLogo?: string;
120
+ }
121
+ export interface ProductStatus {
122
+ productStatus: ProductStatusEnum;
123
+ spaceId: string;
124
+ isoLanguageId?: IsoLanguageIds;
125
+ periodStartDate?: string;
126
+ periodEndDate?: string;
127
+ productStatusNote?: string;
128
+ }
129
+ export interface ProductFeature {
130
+ productId: string;
131
+ isoLanguageId: IsoLanguageIds;
132
+ productFeatureType: string;
133
+ productFeatureValue: string;
134
+ }
135
+ export interface ProductPriceList {
136
+ productId: string;
137
+ spaceId: string;
138
+ priceListType: PriceListTypeEnum;
139
+ isoLanguageId?: IsoLanguageIds;
140
+ pricingUomId?: string;
141
+ periodStartTimestamp?: string;
142
+ periodEndTimestamp?: string;
143
+ isoCurrencyCode: string;
144
+ suggestedRetailPrice?: number;
145
+ listPrice: number;
146
+ }
147
+ export interface CatalogPageLocationProduct {
148
+ productId: string;
149
+ productGroupId: string;
150
+ catalogType: string;
151
+ catalogPage?: string;
152
+ catalogPageLocation?: string;
153
+ catalogPageLocationProduct: string;
154
+ defaultImage?: boolean;
155
+ }
156
+ export interface ProductLabel {
157
+ isoLanguageId: IsoLanguageIds;
158
+ spaceId: string;
159
+ productLabel: string;
160
+ }
161
+ export interface ProductItemQuantity {
162
+ productId: string;
163
+ spaceId: string;
164
+ productItemQuantityStartDate?: string;
165
+ productItemQuantityEndDate?: string;
166
+ productItemQuantity: number;
167
+ }
168
+ export interface ProductVendor {
169
+ vendorId: string;
170
+ productVendor: string;
171
+ periodStartDate?: string;
172
+ periodEndDate?: string;
173
+ }
174
+ export type ProductTags = {
175
+ isoLanguageId: IsoLanguageIds;
176
+ productTags: string[];
177
+ };
178
+ export type CustomProperties = {
179
+ key: string;
180
+ spaceId: string;
181
+ value: string;
182
+ productId?: string;
183
+ };
184
+ export type GridProduct = {
185
+ productGroupId: string;
186
+ tenantId?: string;
187
+ tenantIndex?: string;
188
+ spaceIds: string[];
189
+ productShortDescription?: ProductShortDescription[];
190
+ productInternalName?: ProductInternalName[];
191
+ introductionDate?: string;
192
+ plannedAbandonmentDate?: string;
193
+ storageInstructions?: ProductStorageInstructions[];
194
+ shellLifeDays?: number;
195
+ consumerStorageInstruction?: ProductConsumerStorageInstruction[];
196
+ productShippingInstruction?: ProductShippingInstruction[];
197
+ productName: ProductName[];
198
+ productDescription: ProductDescription[];
199
+ relatedProductGroups?: RelatedProductGroup[];
200
+ variants: Variant[];
201
+ brand?: ProductBrand[];
202
+ productStatus: ProductStatus[];
203
+ productFeature?: ProductFeature[];
204
+ productPriceList: ProductPriceList[];
205
+ catalogPageLocationProduct: CatalogPageLocationProduct[];
206
+ productType: Array<string>;
207
+ productLabel?: ProductLabel[];
208
+ productTags?: ProductTags[];
209
+ productItemQuantity?: ProductItemQuantity[];
210
+ productVendor?: ProductVendor[];
211
+ isDeleted?: boolean;
212
+ variantsGroupId?: string;
213
+ customProperties?: CustomProperties[];
214
+ sortName?: string;
215
+ sortPrice?: number;
216
+ sortQuantity?: number;
217
+ ranking?: number;
218
+ };
219
+ interface Price {
220
+ amount: number;
221
+ currencyCode: string;
222
+ }
223
+ export interface BaseSelectorProps {
224
+ locale?: IsoLanguageIds | '*';
225
+ }
226
+ export type SingleLocalizedResult<T extends BaseSelectorProps, U, V> = T['locale'] extends '*' ? U[] : V;
227
+ interface FilterProps<T> {
228
+ filter?: (item: T) => boolean;
229
+ }
230
+ export interface GetProductLabelProps extends BaseSelectorProps, FilterProps<ProductLabel> {
231
+ }
232
+ export interface GetProductLabelBySpaceProps extends BaseSelectorProps {
233
+ spaceId: string;
234
+ }
235
+ export interface GetProductPriceListProps extends FilterProps<ProductPriceList> {
236
+ }
237
+ export interface GetProductPriceProps {
238
+ spaceId: string;
239
+ }
240
+ export interface GetVariantPriceProps {
241
+ variantId: string;
242
+ spaceId: string;
243
+ }
244
+ export interface GetProductItemQuantityProps extends FilterProps<ProductItemQuantity> {
245
+ }
246
+ export interface GetProductQuantityProps {
247
+ variantId: string;
248
+ spaceId?: string;
249
+ }
250
+ export interface GetCatalogPageLocationProductProps extends FilterProps<CatalogPageLocationProduct> {
251
+ }
252
+ export interface GetProductFeatureProps extends BaseSelectorProps, FilterProps<ProductFeature> {
253
+ }
254
+ export interface GetVariantFeatureProps extends BaseSelectorProps {
255
+ productId: string;
256
+ }
257
+ export interface GetProductVariantsProps extends FilterProps<Variant> {
258
+ }
259
+ export interface GetProductVariantsByProductIdProps {
260
+ productId: string;
261
+ }
262
+ export interface GetVariantImagesProps {
263
+ variantId: string;
264
+ }
265
+ export interface GridProductSelectors {
266
+ getShortDescription: <T extends BaseSelectorProps>(input?: T) => SingleLocalizedResult<T, ProductShortDescription, string>;
267
+ getLabel: (input?: GetProductLabelProps) => ProductLabel['productLabel'][];
268
+ getLabelBySpace: (input: GetProductLabelBySpaceProps) => ProductLabel['productLabel'][];
269
+ getPriceList: (input?: GetProductPriceListProps) => ProductPriceList[];
270
+ getStandardPrice: (input: GetProductPriceProps) => Price | undefined;
271
+ getPromotionalPrice: (input: GetProductPriceProps) => Price | undefined;
272
+ getName: <T extends BaseSelectorProps>(input?: T) => SingleLocalizedResult<T, ProductName, string>;
273
+ getDescription: <T extends BaseSelectorProps>(input?: T) => SingleLocalizedResult<T, ProductDescription, string>;
274
+ getBrandName: <T extends BaseSelectorProps>(input?: T) => SingleLocalizedResult<T, ProductBrand, string>;
275
+ getItemQuantity: (input?: GetProductItemQuantityProps) => ProductItemQuantity[];
276
+ getVariantQuantity: (input: GetProductQuantityProps) => number;
277
+ getCatalogPageLocationProduct: (input?: GetCatalogPageLocationProductProps) => CatalogPageLocationProduct[];
278
+ getImages: () => string[];
279
+ getImage: () => string;
280
+ getFeature: (input?: GetProductFeatureProps) => ProductFeature[];
281
+ getVariants: (input?: GetProductVariantsProps) => Variant[];
282
+ getFirstVariant: () => Variant;
283
+ getVariantsByProductId: (input: GetProductVariantsByProductIdProps) => Variant[];
284
+ getVariantImages: (input: GetVariantImagesProps) => string[];
285
+ getVariantStandardPrice: (input: GetVariantPriceProps) => Price | undefined;
286
+ getVariantPromotionalPrice: (input: GetVariantPriceProps) => Price | undefined;
287
+ getVariantFeature: (input: GetVariantFeatureProps) => ProductFeature[];
288
+ }
289
+ export type SelectablePartialProduct = GridProductSelectors & Partial<GridProduct>;
290
+ export interface CategoryResult {
291
+ id: string;
292
+ title: string;
293
+ parent: string;
294
+ isoLanguageId: IsoLanguageIds;
295
+ }
296
+ export interface ProductTypeTitle {
297
+ isoLanguageId: IsoLanguageIds;
298
+ label: string;
299
+ path?: string;
300
+ }
301
+ export type ProductType = {
302
+ isRoot: boolean;
303
+ parentId: string;
304
+ productTypeId: string;
305
+ title: ProductTypeTitle[];
306
+ };
307
+ export type ProductFeatureModel = {
308
+ id: string;
309
+ partitionKey: string;
310
+ tenantId: string;
311
+ environment: string;
312
+ tenantIndex: string;
313
+ productId: string;
314
+ productGroupId: string;
315
+ productFeatureType: string;
316
+ productFeatureValue: string;
317
+ isoLanguageId: IsoLanguageIds;
318
+ productType: string[];
319
+ spaceId?: string;
320
+ };
321
+ export type ProductRecommendationResponse = {
322
+ default: Partial<GridProduct>[];
323
+ similar: Partial<GridProduct>[];
324
+ styleWith: Partial<GridProduct>[];
325
+ similarItems: Partial<GridProduct>[];
326
+ completeTheLook: Partial<GridProduct>[];
327
+ };
328
+ export interface ProductRecommendationLibraryResponse extends ProductRecommendationResponse {
329
+ default: SelectablePartialProduct[];
330
+ similar: SelectablePartialProduct[];
331
+ styleWith: SelectablePartialProduct[];
332
+ similarItems: SelectablePartialProduct[];
333
+ completeTheLook: SelectablePartialProduct[];
334
+ }
335
+ export type VariantInfo = Variant & {
336
+ spaceIds: string[];
337
+ productName: ProductName[];
338
+ productDescription: ProductDescription[];
339
+ catalogPageLocationProduct: CatalogPageLocationProduct[];
340
+ productLabel: ProductLabel[];
341
+ productPriceList: ProductPriceList[];
342
+ productItemQuantity: ProductItemQuantity[];
343
+ };
344
+ export interface InventoryItem {
345
+ requestedQty: number;
346
+ skuId: string;
347
+ productId: string;
348
+ name: string;
349
+ brandDesc: string;
350
+ category: string;
351
+ color: string;
352
+ styleCode: string;
353
+ size: string;
354
+ imageUrl: string | null;
355
+ zones: InventoryZone[];
356
+ }
357
+ export interface VariantInventory {
358
+ productItemQuantity: ProductItemQuantity[];
359
+ }
360
+ export interface InventoryZone {
361
+ zoneId: string;
362
+ availableQty: number;
363
+ zoneName: string;
364
+ zoneType: string;
365
+ }
366
+ export interface CartItem {
367
+ sequenceId: number;
368
+ productId: string;
369
+ barcode: string;
370
+ price: number;
371
+ quantity: number;
372
+ }
373
+ export interface GetCartPromotionsParams {
374
+ storeId: string;
375
+ transactionId: string;
376
+ transactionTotal: number;
377
+ dateTime: string;
378
+ items: CartItem[];
379
+ posId?: string;
380
+ }
381
+ export interface CartItemPromotionList {
382
+ promoId: string;
383
+ promoAmount: number;
384
+ promoDescription: string;
385
+ }
386
+ export interface CartItemPromotion {
387
+ productId: string;
388
+ originalPrice: number;
389
+ discountValue: number;
390
+ newPrice: number;
391
+ promoList: CartItemPromotionList[];
392
+ }
393
+ export interface GetCartPromotionsResponse {
394
+ totalPrice: number;
395
+ items: CartItemPromotion[];
396
+ }
397
+ export interface UploadExcelDataResponse {
398
+ message: string;
399
+ isError: boolean;
400
+ count: {
401
+ productGroups: number;
402
+ products: number;
403
+ productTypes: number;
404
+ } | null;
405
+ }
406
+ export interface GetVariantActivePriceParams {
407
+ spaceId: string;
408
+ storeId: string;
409
+ productId: string;
410
+ dateTime?: string;
411
+ posId?: string;
412
+ }
413
+ export interface GetVariantActivePriceResponse {
414
+ productId: string;
415
+ productGroupId: string;
416
+ spaceId: string;
417
+ price: ProductPriceList;
418
+ }
419
+ export type VariantUpdateFields = Variant & {
420
+ productGroupId?: string;
421
+ productPriceList?: ProductPriceList[];
422
+ productFeature?: ProductFeature[];
423
+ productItemQuantity?: ProductItemQuantity[];
424
+ };
425
+ export interface UpdateVariantsParams {
426
+ data: (Partial<VariantUpdateFields> & {
427
+ productId: string;
428
+ })[];
429
+ upsertSpaceIds: boolean;
430
+ }
431
+ export type GridProductPushPayload = {
432
+ productGroupId: string;
433
+ productShortDescription?: ProductShortDescription[];
434
+ productInternalName?: ProductInternalName[];
435
+ introductionDate?: string;
436
+ plannedAbandonmentDate?: string;
437
+ storageInstructions?: ProductStorageInstructions[];
438
+ shellLifeDays?: number;
439
+ consumerStorageInstruction?: ProductConsumerStorageInstruction[];
440
+ productShippingInstruction?: ProductShippingInstruction[];
441
+ productName?: ProductName[];
442
+ productDescription?: ProductDescription[];
443
+ relatedProductGroups?: RelatedProductGroup[];
444
+ variants?: Variant[];
445
+ brand?: ProductBrand[];
446
+ productStatus?: ProductStatus[];
447
+ productFeature?: ProductFeature[];
448
+ productPriceList?: ProductPriceList[];
449
+ catalogPageLocationProduct?: CatalogPageLocationProduct[];
450
+ productType?: Array<string>;
451
+ productLabel?: ProductLabel[];
452
+ productTags?: ProductTags[];
453
+ productItemQuantity?: ProductItemQuantity[];
454
+ productVendor?: ProductVendor[];
455
+ variantsGroupId?: string;
456
+ customProperties?: CustomProperties[];
457
+ };
458
+ export {};
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProductRelationshipTypes = exports.ProductStatusEnum = exports.PriceListTypeEnum = exports.DataResidencyEnum = void 0;
4
+ var DataResidencyEnum;
5
+ (function (DataResidencyEnum) {
6
+ DataResidencyEnum["EU"] = "EU";
7
+ DataResidencyEnum["US"] = "US";
8
+ DataResidencyEnum["UAE"] = "UAE";
9
+ DataResidencyEnum["AU"] = "AU";
10
+ DataResidencyEnum["IN"] = "IN";
11
+ DataResidencyEnum["QA"] = "QA";
12
+ DataResidencyEnum["DEV"] = "DEV";
13
+ })(DataResidencyEnum || (exports.DataResidencyEnum = DataResidencyEnum = {}));
14
+ var PriceListTypeEnum;
15
+ (function (PriceListTypeEnum) {
16
+ PriceListTypeEnum["Standard"] = "Standard";
17
+ PriceListTypeEnum["Promotional"] = "Promotional";
18
+ PriceListTypeEnum["StandardConditional"] = "StandardConditional";
19
+ })(PriceListTypeEnum || (exports.PriceListTypeEnum = PriceListTypeEnum = {}));
20
+ var ProductStatusEnum;
21
+ (function (ProductStatusEnum) {
22
+ ProductStatusEnum["Active"] = "Active";
23
+ ProductStatusEnum["Inactive"] = "Inactive";
24
+ ProductStatusEnum["Discontinued"] = "Discontinued";
25
+ ProductStatusEnum["Dormant"] = "Dormant";
26
+ ProductStatusEnum["Frozen"] = "Frozen";
27
+ ProductStatusEnum["Replaced"] = "Replaced";
28
+ ProductStatusEnum["Obsolete"] = "Obsolete";
29
+ ProductStatusEnum["Abandoned"] = "Abandoned";
30
+ ProductStatusEnum["Blocked"] = "Blocked";
31
+ })(ProductStatusEnum || (exports.ProductStatusEnum = ProductStatusEnum = {}));
32
+ var ProductRelationshipTypes;
33
+ (function (ProductRelationshipTypes) {
34
+ ProductRelationshipTypes["Recommended"] = "Recommended";
35
+ ProductRelationshipTypes["StyleWith"] = "StyleWith";
36
+ ProductRelationshipTypes["Similar"] = "Similar";
37
+ // Other ProductRelationshipType to support in future
38
+ })(ProductRelationshipTypes || (exports.ProductRelationshipTypes = ProductRelationshipTypes = {}));