@merkaly/api 0.5.15 → 0.6.1

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 (168) hide show
  1. package/dist/abstract.repository.d.ts +21 -31
  2. package/dist/abstract.validator.d.ts +10 -17
  3. package/dist/abstract.validator.js +54 -64
  4. package/dist/account/address/index.d.ts +1 -1
  5. package/dist/account/address/index.js +1 -1
  6. package/dist/account/address/request.validator.d.ts +16 -0
  7. package/dist/account/address/{address.validator.js → request.validator.js} +35 -18
  8. package/dist/account/payment/index.d.ts +1 -1
  9. package/dist/account/payment/index.js +1 -1
  10. package/dist/account/payment/request.validator.d.ts +19 -0
  11. package/dist/account/payment/{payment.validator.js → request.validator.js} +46 -18
  12. package/dist/account/user/index.d.ts +1 -1
  13. package/dist/account/user/index.js +1 -1
  14. package/dist/account/user/request.validator.d.ts +10 -0
  15. package/dist/account/user/{user.validator.js → request.validator.js} +18 -23
  16. package/dist/address.validator.d.ts +2 -2
  17. package/dist/finance/invoice/index.d.ts +1 -1
  18. package/dist/finance/invoice/index.js +1 -1
  19. package/dist/finance/invoice/request.validator.d.ts +21 -0
  20. package/dist/finance/invoice/{invoice.validator.js → request.validator.js} +41 -19
  21. package/dist/finance/payment/index.d.ts +1 -1
  22. package/dist/finance/payment/index.js +1 -1
  23. package/dist/finance/payment/payment.entity.d.ts +6 -6
  24. package/dist/finance/payment/payment.transition.d.ts +5 -3
  25. package/dist/finance/payment/payment.transition.js +10 -5
  26. package/dist/finance/payment/request.validator.d.ts +14 -0
  27. package/dist/finance/payment/{payment.validator.js → request.validator.js} +24 -12
  28. package/dist/finance/refund/index.d.ts +1 -1
  29. package/dist/finance/refund/index.js +1 -1
  30. package/dist/finance/refund/refund.entity.d.ts +2 -1
  31. package/dist/finance/refund/refund.transition.d.ts +5 -3
  32. package/dist/finance/refund/refund.transition.js +8 -14
  33. package/dist/finance/refund/request.validator.d.ts +16 -0
  34. package/dist/finance/refund/{refund.validator.js → request.validator.js} +32 -14
  35. package/dist/inventory/catalog/attribute/request.validator.d.ts +7 -4
  36. package/dist/inventory/catalog/attribute/request.validator.js +23 -15
  37. package/dist/inventory/catalog/brand/request.validator.d.ts +8 -5
  38. package/dist/inventory/catalog/brand/request.validator.js +17 -11
  39. package/dist/inventory/catalog/category/category.entity.d.ts +3 -1
  40. package/dist/inventory/catalog/category/request.validator.d.ts +8 -5
  41. package/dist/inventory/catalog/category/request.validator.js +17 -11
  42. package/dist/inventory/catalog/collection/request.validator.d.ts +9 -6
  43. package/dist/inventory/catalog/collection/request.validator.js +21 -14
  44. package/dist/inventory/catalog/product/product.entity.d.ts +12 -4
  45. package/dist/inventory/catalog/product/request.validator.d.ts +24 -11
  46. package/dist/inventory/catalog/product/request.validator.js +74 -44
  47. package/dist/inventory/catalog/variant/request.validator.d.ts +9 -7
  48. package/dist/inventory/catalog/variant/request.validator.js +33 -27
  49. package/dist/inventory/catalog/variant/variant.entity.d.ts +6 -4
  50. package/dist/inventory/configuration/measurement/index.d.ts +1 -1
  51. package/dist/inventory/configuration/measurement/index.js +1 -1
  52. package/dist/inventory/configuration/measurement/request.validator.d.ts +21 -0
  53. package/dist/inventory/configuration/measurement/{measurement.validator.js → request.validator.js} +57 -49
  54. package/dist/inventory/stock/balance/balance.entity.d.ts +9 -5
  55. package/dist/inventory/stock/balance/balance.status.enum.d.ts +6 -0
  56. package/dist/inventory/stock/balance/balance.status.enum.js +7 -0
  57. package/dist/inventory/stock/balance/index.d.ts +1 -1
  58. package/dist/inventory/stock/balance/index.js +1 -1
  59. package/dist/inventory/stock/transfer/index.d.ts +3 -2
  60. package/dist/inventory/stock/transfer/index.js +2 -2
  61. package/dist/inventory/stock/transfer/request.validator.d.ts +24 -0
  62. package/dist/inventory/stock/transfer/request.validator.js +111 -0
  63. package/dist/inventory/stock/transfer/transfer.entity.d.ts +9 -16
  64. package/dist/inventory/stock/transfer/{transfer.status.enum.d.ts → transfer.enum.d.ts} +5 -1
  65. package/dist/inventory/stock/transfer/{transfer.status.enum.js → transfer.enum.js} +6 -1
  66. package/dist/inventory/stock/transfer/transfer.item.entity.d.ts +12 -0
  67. package/dist/inventory/stock/transfer/transfer.transition.d.ts +3 -1
  68. package/dist/inventory/stock/transfer/transfer.transition.js +13 -6
  69. package/dist/inventory/stock/warehouse/index.d.ts +1 -1
  70. package/dist/inventory/stock/warehouse/index.js +1 -1
  71. package/dist/inventory/stock/warehouse/request.validator.d.ts +14 -0
  72. package/dist/inventory/stock/warehouse/{warehouse.validator.js → request.validator.js} +40 -44
  73. package/dist/inventory/stock/warehouse/warehouse.entity.d.ts +2 -2
  74. package/dist/order/purchase/item/index.d.ts +1 -1
  75. package/dist/order/purchase/item/index.js +1 -1
  76. package/dist/order/purchase/item/item.entity.d.ts +18 -11
  77. package/dist/order/purchase/item/request.validator.d.ts +12 -0
  78. package/dist/order/{service/item/item.validator.js → purchase/item/request.validator.js} +32 -15
  79. package/dist/order/purchase/transaction/index.d.ts +1 -1
  80. package/dist/order/purchase/transaction/index.js +1 -1
  81. package/dist/order/purchase/transaction/request.validator.d.ts +23 -0
  82. package/dist/order/purchase/transaction/request.validator.js +97 -0
  83. package/dist/order/purchase/transaction/transaction.entity.d.ts +3 -4
  84. package/dist/order/purchase/transaction/transaction.enum.d.ts +0 -1
  85. package/dist/order/purchase/transaction/transaction.enum.js +0 -3
  86. package/dist/order/purchase/transaction/transaction.transition.d.ts +2 -0
  87. package/dist/order/purchase/transaction/transaction.transition.js +10 -3
  88. package/dist/order/purchase/vendor/index.d.ts +1 -1
  89. package/dist/order/purchase/vendor/index.js +1 -1
  90. package/dist/order/purchase/vendor/request.validator.d.ts +16 -0
  91. package/dist/order/purchase/vendor/{vendor.validator.js → request.validator.js} +30 -28
  92. package/dist/order/sale/customer/index.d.ts +1 -1
  93. package/dist/order/sale/customer/index.js +1 -1
  94. package/dist/order/sale/customer/request.validator.d.ts +18 -0
  95. package/dist/order/sale/customer/{customer.validator.js → request.validator.js} +34 -30
  96. package/dist/order/sale/item/index.d.ts +1 -1
  97. package/dist/order/sale/item/index.js +1 -1
  98. package/dist/order/sale/item/item.entity.d.ts +18 -16
  99. package/dist/order/sale/item/request.validator.d.ts +12 -0
  100. package/dist/order/sale/item/{item.validator.js → request.validator.js} +23 -6
  101. package/dist/order/sale/transaction/index.d.ts +1 -1
  102. package/dist/order/sale/transaction/index.js +1 -1
  103. package/dist/order/sale/transaction/request.validator.d.ts +25 -0
  104. package/dist/order/sale/transaction/request.validator.js +104 -0
  105. package/dist/order/sale/transaction/transaction.entity.d.ts +3 -6
  106. package/dist/order/sale/transaction/transaction.enum.d.ts +0 -3
  107. package/dist/order/sale/transaction/transaction.enum.js +0 -9
  108. package/dist/order/sale/transaction/transaction.transition.d.ts +2 -0
  109. package/dist/order/sale/transaction/transaction.transition.js +11 -5
  110. package/dist/repository.types.d.ts +2 -2
  111. package/dist/settings/organization/index.d.ts +0 -1
  112. package/dist/settings/organization/index.js +0 -1
  113. package/dist/transaction.entity.d.ts +14 -5
  114. package/package.json +5 -6
  115. package/dist/account/address/address.validator.d.ts +0 -15
  116. package/dist/account/payment/payment.validator.d.ts +0 -14
  117. package/dist/account/user/user.validator.d.ts +0 -15
  118. package/dist/finance/invoice/invoice.validator.d.ts +0 -19
  119. package/dist/finance/payment/payment.validator.d.ts +0 -14
  120. package/dist/finance/refund/refund.validator.d.ts +0 -14
  121. package/dist/finance/subscription/index.d.ts +0 -3
  122. package/dist/finance/subscription/index.js +0 -2
  123. package/dist/finance/subscription/subscription.entity.d.ts +0 -14
  124. package/dist/finance/subscription/subscription.enum.d.ts +0 -15
  125. package/dist/finance/subscription/subscription.enum.js +0 -17
  126. package/dist/finance/subscription/subscription.validator.d.ts +0 -17
  127. package/dist/finance/subscription/subscription.validator.js +0 -69
  128. package/dist/finance/tax/index.d.ts +0 -3
  129. package/dist/finance/tax/index.js +0 -2
  130. package/dist/finance/tax/tax.entity.d.ts +0 -10
  131. package/dist/finance/tax/tax.enum.d.ts +0 -8
  132. package/dist/finance/tax/tax.enum.js +0 -9
  133. package/dist/finance/tax/tax.validator.d.ts +0 -15
  134. package/dist/finance/tax/tax.validator.js +0 -60
  135. package/dist/inventory/configuration/measurement/measurement.validator.d.ts +0 -20
  136. package/dist/inventory/stock/balance/balance.validator.d.ts +0 -13
  137. package/dist/inventory/stock/balance/balance.validator.js +0 -46
  138. package/dist/inventory/stock/transfer/transfer.validator.d.ts +0 -21
  139. package/dist/inventory/stock/transfer/transfer.validator.js +0 -101
  140. package/dist/inventory/stock/warehouse/warehouse.validator.d.ts +0 -19
  141. package/dist/order/purchase/item/item.validator.d.ts +0 -10
  142. package/dist/order/purchase/item/item.validator.js +0 -50
  143. package/dist/order/purchase/transaction/transaction.validator.d.ts +0 -18
  144. package/dist/order/purchase/transaction/transaction.validator.js +0 -78
  145. package/dist/order/purchase/vendor/vendor.validator.d.ts +0 -17
  146. package/dist/order/sale/customer/customer.validator.d.ts +0 -19
  147. package/dist/order/sale/item/item.validator.d.ts +0 -9
  148. package/dist/order/sale/payment/index.d.ts +0 -1
  149. package/dist/order/sale/payment/index.js +0 -1
  150. package/dist/order/sale/payment/payment.validator.d.ts +0 -7
  151. package/dist/order/sale/payment/payment.validator.js +0 -31
  152. package/dist/order/sale/transaction/transaction.validator.d.ts +0 -18
  153. package/dist/order/sale/transaction/transaction.validator.js +0 -77
  154. package/dist/order/service/item/index.d.ts +0 -2
  155. package/dist/order/service/item/index.js +0 -1
  156. package/dist/order/service/item/item.entity.d.ts +0 -14
  157. package/dist/order/service/item/item.validator.d.ts +0 -9
  158. package/dist/order/service/transaction/index.d.ts +0 -4
  159. package/dist/order/service/transaction/index.js +0 -3
  160. package/dist/order/service/transaction/transaction.entity.d.ts +0 -9
  161. package/dist/order/service/transaction/transaction.enum.d.ts +0 -8
  162. package/dist/order/service/transaction/transaction.enum.js +0 -9
  163. package/dist/order/service/transaction/transaction.transition.d.ts +0 -6
  164. package/dist/order/service/transaction/transaction.transition.js +0 -13
  165. package/dist/order/service/transaction/transaction.validator.d.ts +0 -17
  166. package/dist/order/service/transaction/transaction.validator.js +0 -76
  167. package/dist/settings/organization/organization.validator.d.ts +0 -10
  168. package/dist/settings/organization/organization.validator.js +0 -32
@@ -1,8 +1,11 @@
1
- import { CatalogCollectionEntity } from './';
2
- import { AbstractValidator } from '../../..';
3
- export declare class SaveCollectionRequestValidator extends AbstractValidator {
4
- constructor(entity?: CatalogCollectionEntity);
1
+ import { AbstractRequestValidator } from '../../..';
2
+ import type { CatalogCollectionEntity } from './';
3
+ export declare class CreateCollectionRequestValidator extends AbstractRequestValidator {
4
+ name: string;
5
+ description?: string;
6
+ products?: string[];
7
+ constructor(collection?: CatalogCollectionEntity);
8
+ }
9
+ export declare class UpdateCollectionRequestValidator extends CreateCollectionRequestValidator {
5
10
  name: string;
6
- description: string;
7
- products: string[];
8
11
  }
@@ -8,35 +8,42 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import * as class_validator_1 from "class-validator";
11
- import * as abstract_validator_1 from '../../..';
12
- export class SaveCollectionRequestValidator extends abstract_validator_1.AbstractValidator {
13
- constructor(entity) {
14
- super();
15
- if (!entity)
16
- return;
17
- this.name = entity.name;
18
- this.description = entity.description;
19
- this.products = entity.products?.map(abstract_validator_1.toId).filter(Boolean) || [];
20
- }
11
+ import * as abstract_validator_1 from '../../../index.js';
12
+ export class CreateCollectionRequestValidator extends abstract_validator_1.AbstractRequestValidator {
21
13
  name;
22
14
  description;
23
15
  products = [];
16
+ constructor(collection) {
17
+ super();
18
+ if (!collection) {
19
+ return;
20
+ }
21
+ this.name = collection.name;
22
+ this.description = collection.description;
23
+ this.products =
24
+ collection.products?.map((product) => (product?._id || product)) ?? [];
25
+ }
24
26
  }
25
27
  __decorate([
26
28
  (0, class_validator_1.IsString)(),
27
29
  (0, class_validator_1.IsNotEmpty)(),
28
30
  (0, class_validator_1.Length)(0, 100),
29
- (0, class_validator_1.IsOptional)({ groups: ['update'] }),
30
31
  __metadata("design:type", String)
31
- ], SaveCollectionRequestValidator.prototype, "name", void 0);
32
+ ], CreateCollectionRequestValidator.prototype, "name", void 0);
32
33
  __decorate([
33
34
  (0, class_validator_1.IsString)(),
34
35
  (0, class_validator_1.Length)(0, 1000),
35
36
  (0, class_validator_1.IsOptional)(),
36
37
  __metadata("design:type", String)
37
- ], SaveCollectionRequestValidator.prototype, "description", void 0);
38
+ ], CreateCollectionRequestValidator.prototype, "description", void 0);
38
39
  __decorate([
39
40
  (0, class_validator_1.IsMongoId)({ each: true }),
40
41
  (0, class_validator_1.IsOptional)(),
41
42
  __metadata("design:type", Array)
42
- ], SaveCollectionRequestValidator.prototype, "products", void 0);
43
+ ], CreateCollectionRequestValidator.prototype, "products", void 0);
44
+ export class UpdateCollectionRequestValidator extends CreateCollectionRequestValidator {
45
+ }
46
+ __decorate([
47
+ (0, class_validator_1.IsOptional)(),
48
+ __metadata("design:type", String)
49
+ ], UpdateCollectionRequestValidator.prototype, "name", void 0);
@@ -1,18 +1,21 @@
1
1
  import { AssetEntity } from '../../../assets/asset';
2
- import { StockBalanceStatusEnum } from '../../..';
2
+ import { StockBalanceEntity } from '../../stock/balance';
3
+ import { StockBalanceStatusEnum } from '../../stock/balance';
3
4
  import { AbstractEntity } from '../../..';
4
5
  import { CatalogAttributeEntity } from '../attribute';
5
6
  import type { CatalogBrandEntity } from '../brand';
6
7
  import type { CatalogCategoryEntity } from '../category';
7
8
  import type { CatalogVariantEntity } from '../variant';
8
9
  import type { ConfigurationMeasurementEntity } from '../../configuration/measurement';
10
+ import type { ConfigurationUnitEntity } from '../../configuration/unit';
9
11
  export declare class CatalogProductEntity extends AbstractEntity {
10
12
  sku?: string;
11
13
  name: string;
12
14
  description?: string;
13
15
  price: number;
14
- minStockLevel: number;
15
- pictures: AssetEntity[];
16
+ sellPrice: number;
17
+ cost: number;
18
+ buyPrice: number;
16
19
  category?: CatalogCategoryEntity;
17
20
  brand?: CatalogBrandEntity;
18
21
  attributes: {
@@ -23,10 +26,15 @@ export declare class CatalogProductEntity extends AbstractEntity {
23
26
  amount: number;
24
27
  kind: ConfigurationMeasurementEntity;
25
28
  unit: string;
29
+ selected?: ConfigurationUnitEntity;
26
30
  };
27
31
  hashtags: string[];
32
+ readonly picture: AssetEntity;
33
+ readonly pictures: AssetEntity[];
28
34
  readonly variants: CatalogVariantEntity[];
29
35
  readonly stock: number;
30
36
  readonly status: StockBalanceStatusEnum;
31
- readonly image: AssetEntity;
37
+ readonly balance: StockBalanceEntity;
38
+ readonly balances: StockBalanceEntity[];
39
+ readonly 'measure.selected': ConfigurationUnitEntity;
32
40
  }
@@ -1,24 +1,37 @@
1
- import { CatalogProductEntity } from './';
2
- import { AbstractValidator } from '../../..';
3
- export declare class ProductAttributeRequestValidator extends AbstractValidator {
1
+ import { AbstractRequestValidator } from '../../..';
2
+ import type { CatalogProductEntity } from './';
3
+ type CatalogProductRequestSource = CatalogProductEntity & {
4
+ minStockLevel?: number;
5
+ policy?: {
6
+ minStock?: number;
7
+ };
8
+ };
9
+ export declare class ProductAttributeRequestValidator extends AbstractRequestValidator {
4
10
  type: string;
5
11
  values: string[];
12
+ constructor(attribute?: CatalogProductEntity['attributes'][number]);
6
13
  }
7
- export declare class SaveProductRequestValidator extends AbstractValidator {
8
- constructor(entity?: CatalogProductEntity);
14
+ export declare class CreateProductRequestValidator extends AbstractRequestValidator {
9
15
  name: string;
10
- sku: string;
11
- description: string;
12
- price: number;
16
+ sku?: string;
17
+ description?: string;
18
+ sellPrice?: number;
19
+ buyPrice?: number;
13
20
  minStockLevel?: number;
14
21
  measure: {
15
22
  amount: any;
16
23
  kind: any;
17
24
  unit: any;
18
25
  };
19
- pictures: string[];
20
- category: string;
21
- brand: string;
26
+ pictures?: string[];
27
+ category?: string;
28
+ brand?: string;
22
29
  hashtags: string[];
23
30
  attributes: ProductAttributeRequestValidator[];
31
+ constructor(product?: CatalogProductRequestSource);
32
+ }
33
+ export declare class UpdateProductRequestValidator extends CreateProductRequestValidator {
34
+ name: string;
35
+ measure: CreateProductRequestValidator['measure'];
24
36
  }
37
+ export {};
@@ -9,10 +9,18 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import * as class_transformer_1 from "class-transformer";
11
11
  import * as class_validator_1 from "class-validator";
12
- import * as abstract_validator_1 from '../../..';
13
- export class ProductAttributeRequestValidator extends abstract_validator_1.AbstractValidator {
12
+ import * as abstract_validator_1 from '../../../index.js';
13
+ export class ProductAttributeRequestValidator extends abstract_validator_1.AbstractRequestValidator {
14
14
  type;
15
15
  values = [];
16
+ constructor(attribute) {
17
+ super();
18
+ if (!attribute) {
19
+ return;
20
+ }
21
+ this.type = (attribute.type?._id || attribute.type);
22
+ this.values = attribute.values ?? [];
23
+ }
16
24
  }
17
25
  __decorate([
18
26
  (0, class_validator_1.IsMongoId)(),
@@ -24,103 +32,125 @@ __decorate([
24
32
  (0, class_validator_1.Length)(0, 100, { each: true }),
25
33
  __metadata("design:type", Array)
26
34
  ], ProductAttributeRequestValidator.prototype, "values", void 0);
27
- export class SaveProductRequestValidator extends abstract_validator_1.AbstractValidator {
28
- constructor(entity) {
29
- super();
30
- if (!entity)
31
- return;
32
- this.sku = entity.sku;
33
- this.name = entity.name;
34
- this.description = entity.description;
35
- this.price = entity.price;
36
- this.minStockLevel = entity.minStockLevel;
37
- this.category = (0, abstract_validator_1.toId)(entity.category);
38
- this.brand = (0, abstract_validator_1.toId)(entity.brand);
39
- this.measure.amount = entity.measure?.amount;
40
- this.measure.kind = (0, abstract_validator_1.toId)(entity.measure?.kind);
41
- this.measure.unit = entity.measure?.unit;
42
- this.pictures = entity.pictures?.map(abstract_validator_1.toId).filter(Boolean) || [];
43
- this.hashtags = entity.hashtags || [];
44
- this.attributes =
45
- entity.attributes?.map((attribute) => ({
46
- type: (0, abstract_validator_1.toId)(attribute.type),
47
- values: attribute.values || [],
48
- })) || [];
49
- }
35
+ export class CreateProductRequestValidator extends abstract_validator_1.AbstractRequestValidator {
50
36
  name;
51
37
  sku;
52
38
  description;
53
- price;
39
+ sellPrice;
40
+ buyPrice;
54
41
  minStockLevel;
55
- measure = { amount: undefined, kind: undefined, unit: undefined };
42
+ measure = { amount: null, kind: null, unit: null };
56
43
  pictures = [];
57
44
  category;
58
45
  brand;
59
46
  hashtags = [];
60
47
  attributes = [];
48
+ constructor(product) {
49
+ super();
50
+ if (!product) {
51
+ return;
52
+ }
53
+ this.name = product.name;
54
+ this.sku = product.sku;
55
+ this.description = product.description;
56
+ this.sellPrice = product.sellPrice ?? product.price;
57
+ this.buyPrice = product.buyPrice ?? product.cost;
58
+ this.minStockLevel = product.minStockLevel ?? product.policy?.minStock;
59
+ this.category = (product.category?._id || product.category);
60
+ this.brand = (product.brand?._id || product.brand);
61
+ this.hashtags = product.hashtags ?? [];
62
+ if (product.measure !== undefined) {
63
+ const measureUnit = product.measure?.unit;
64
+ this.measure = {
65
+ amount: product.measure?.amount ?? null,
66
+ kind: (product.measure?.kind?._id || product.measure?.kind),
67
+ unit: (measureUnit?._id || measureUnit),
68
+ };
69
+ }
70
+ this.pictures =
71
+ product.pictures?.map((picture) => (picture?._id || picture)) ?? this.pictures;
72
+ this.attributes =
73
+ product.attributes?.map((attribute) => new ProductAttributeRequestValidator(attribute)) ??
74
+ this.attributes;
75
+ }
61
76
  }
62
77
  __decorate([
63
78
  (0, class_validator_1.IsString)(),
64
79
  (0, class_validator_1.IsNotEmpty)(),
65
80
  (0, class_validator_1.Length)(0, 100),
66
- (0, class_validator_1.IsOptional)({ groups: ['update'] }),
67
81
  __metadata("design:type", String)
68
- ], SaveProductRequestValidator.prototype, "name", void 0);
82
+ ], CreateProductRequestValidator.prototype, "name", void 0);
69
83
  __decorate([
70
84
  (0, class_validator_1.IsString)(),
71
85
  (0, class_validator_1.Length)(0, 50),
72
86
  (0, class_validator_1.IsOptional)(),
73
87
  __metadata("design:type", String)
74
- ], SaveProductRequestValidator.prototype, "sku", void 0);
88
+ ], CreateProductRequestValidator.prototype, "sku", void 0);
75
89
  __decorate([
76
90
  (0, class_validator_1.IsString)(),
77
91
  (0, class_validator_1.Length)(0, 1000),
78
92
  (0, class_validator_1.IsOptional)(),
79
93
  __metadata("design:type", String)
80
- ], SaveProductRequestValidator.prototype, "description", void 0);
94
+ ], CreateProductRequestValidator.prototype, "description", void 0);
95
+ __decorate([
96
+ (0, class_validator_1.IsInt)(),
97
+ (0, class_validator_1.Min)(0),
98
+ (0, class_validator_1.IsOptional)(),
99
+ __metadata("design:type", Number)
100
+ ], CreateProductRequestValidator.prototype, "sellPrice", void 0);
81
101
  __decorate([
82
- (0, class_validator_1.IsPositive)(),
83
- (0, class_validator_1.IsOptional)({ groups: ['update'] }),
102
+ (0, class_validator_1.IsInt)(),
103
+ (0, class_validator_1.Min)(0),
104
+ (0, class_validator_1.IsOptional)(),
84
105
  __metadata("design:type", Number)
85
- ], SaveProductRequestValidator.prototype, "price", void 0);
106
+ ], CreateProductRequestValidator.prototype, "buyPrice", void 0);
86
107
  __decorate([
87
108
  (0, class_validator_1.IsInt)(),
88
109
  (0, class_validator_1.Min)(0),
89
110
  (0, class_validator_1.IsOptional)(),
90
111
  __metadata("design:type", Number)
91
- ], SaveProductRequestValidator.prototype, "minStockLevel", void 0);
112
+ ], CreateProductRequestValidator.prototype, "minStockLevel", void 0);
92
113
  __decorate([
93
114
  (0, class_validator_1.IsObject)(),
94
- (0, class_validator_1.IsOptional)({ groups: ['update'] }),
95
115
  __metadata("design:type", Object)
96
- ], SaveProductRequestValidator.prototype, "measure", void 0);
116
+ ], CreateProductRequestValidator.prototype, "measure", void 0);
97
117
  __decorate([
98
118
  (0, class_validator_1.IsMongoId)({ each: true }),
99
119
  (0, class_validator_1.IsArray)(),
100
120
  (0, class_validator_1.IsOptional)(),
101
121
  __metadata("design:type", Array)
102
- ], SaveProductRequestValidator.prototype, "pictures", void 0);
122
+ ], CreateProductRequestValidator.prototype, "pictures", void 0);
103
123
  __decorate([
104
124
  (0, class_validator_1.IsMongoId)(),
105
125
  (0, class_validator_1.IsOptional)(),
106
126
  __metadata("design:type", String)
107
- ], SaveProductRequestValidator.prototype, "category", void 0);
127
+ ], CreateProductRequestValidator.prototype, "category", void 0);
108
128
  __decorate([
109
129
  (0, class_validator_1.IsMongoId)(),
110
130
  (0, class_validator_1.IsOptional)(),
111
131
  __metadata("design:type", String)
112
- ], SaveProductRequestValidator.prototype, "brand", void 0);
132
+ ], CreateProductRequestValidator.prototype, "brand", void 0);
113
133
  __decorate([
114
134
  (0, class_validator_1.IsArray)(),
115
135
  (0, class_validator_1.IsString)({ each: true }),
116
136
  (0, class_validator_1.Length)(0, 50, { each: true }),
117
- (0, class_validator_1.IsOptional)({ groups: ['update'] }),
137
+ (0, class_validator_1.IsOptional)(),
118
138
  __metadata("design:type", Array)
119
- ], SaveProductRequestValidator.prototype, "hashtags", void 0);
139
+ ], CreateProductRequestValidator.prototype, "hashtags", void 0);
120
140
  __decorate([
121
141
  (0, class_validator_1.IsArray)(),
122
142
  (0, class_transformer_1.Type)(() => ProductAttributeRequestValidator),
123
143
  (0, class_validator_1.ValidateNested)({ each: true }),
124
- (0, class_validator_1.IsOptional)({ groups: ['update'] }),
144
+ (0, class_validator_1.IsOptional)(),
125
145
  __metadata("design:type", Array)
126
- ], SaveProductRequestValidator.prototype, "attributes", void 0);
146
+ ], CreateProductRequestValidator.prototype, "attributes", void 0);
147
+ export class UpdateProductRequestValidator extends CreateProductRequestValidator {
148
+ }
149
+ __decorate([
150
+ (0, class_validator_1.IsOptional)(),
151
+ __metadata("design:type", String)
152
+ ], UpdateProductRequestValidator.prototype, "name", void 0);
153
+ __decorate([
154
+ (0, class_validator_1.IsOptional)(),
155
+ __metadata("design:type", Object)
156
+ ], UpdateProductRequestValidator.prototype, "measure", void 0);
@@ -1,17 +1,19 @@
1
- import { CatalogVariantEntity } from './';
2
- import { AbstractValidator } from '../../..';
3
- export declare class VariantOptionRequestValidator {
4
- constructor(option?: CatalogVariantEntity['options'][number]);
1
+ import { AbstractRequestValidator } from '../../..';
2
+ import type { CatalogVariantEntity } from './';
3
+ export declare class VariantOptionRequestValidator extends AbstractRequestValidator {
5
4
  type: string;
6
5
  value: string;
6
+ constructor(option?: CatalogVariantEntity['options'][number]);
7
7
  }
8
- export declare class SaveVariantRequestValidator extends AbstractValidator {
9
- constructor(entity?: CatalogVariantEntity);
8
+ export declare class CreateVariantRequestValidator extends AbstractRequestValidator {
10
9
  product?: string;
11
10
  sku?: string;
12
11
  price?: number;
13
12
  minStockLevel?: number;
14
13
  options?: VariantOptionRequestValidator[];
15
14
  active?: boolean;
16
- barcode?: string;
15
+ gtin?: string;
16
+ constructor(variant?: CatalogVariantEntity);
17
+ }
18
+ export declare class UpdateVariantRequestValidator extends CreateVariantRequestValidator {
17
19
  }
@@ -9,16 +9,18 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import * as class_transformer_1 from "class-transformer";
11
11
  import * as class_validator_1 from "class-validator";
12
- import * as abstract_validator_1 from '../../..';
13
- export class VariantOptionRequestValidator {
12
+ import * as abstract_validator_1 from '../../../index.js';
13
+ export class VariantOptionRequestValidator extends abstract_validator_1.AbstractRequestValidator {
14
+ type;
15
+ value;
14
16
  constructor(option) {
15
- if (!option)
17
+ super();
18
+ if (!option) {
16
19
  return;
17
- this.type = (0, abstract_validator_1.toId)(option.type);
20
+ }
21
+ this.type = (option.type?._id || option.type);
18
22
  this.value = option.value;
19
23
  }
20
- type;
21
- value;
22
24
  }
23
25
  __decorate([
24
26
  (0, class_validator_1.IsMongoId)(),
@@ -30,64 +32,68 @@ __decorate([
30
32
  (0, class_validator_1.Length)(0, 100),
31
33
  __metadata("design:type", String)
32
34
  ], VariantOptionRequestValidator.prototype, "value", void 0);
33
- export class SaveVariantRequestValidator extends abstract_validator_1.AbstractValidator {
34
- constructor(entity) {
35
- super();
36
- if (!entity)
37
- return;
38
- this.product = (0, abstract_validator_1.toId)(entity.product);
39
- this.sku = entity.sku;
40
- this.price = entity.price;
41
- this.minStockLevel = entity.minStockLevel;
42
- this.options = entity.options?.map((option) => new VariantOptionRequestValidator(option)) || [];
43
- this.active = entity.active;
44
- this.barcode = entity.barcode;
45
- }
35
+ export class CreateVariantRequestValidator extends abstract_validator_1.AbstractRequestValidator {
46
36
  product;
47
37
  sku;
48
38
  price;
49
39
  minStockLevel;
50
40
  options = [];
51
41
  active;
52
- barcode;
42
+ gtin;
43
+ constructor(variant) {
44
+ super();
45
+ if (!variant) {
46
+ return;
47
+ }
48
+ this.product = (variant.product?._id || variant.product);
49
+ this.sku = variant.identifier?.sku;
50
+ this.price = variant.price;
51
+ this.minStockLevel = variant.policy?.minStock;
52
+ this.active = variant.active;
53
+ this.gtin = variant.identifier?.gtin;
54
+ this.options =
55
+ variant.options?.map((option) => new VariantOptionRequestValidator(option)) ?? this.options;
56
+ }
53
57
  }
54
58
  __decorate([
55
59
  (0, class_validator_1.IsMongoId)(),
56
60
  (0, class_validator_1.IsOptional)(),
57
61
  __metadata("design:type", String)
58
- ], SaveVariantRequestValidator.prototype, "product", void 0);
62
+ ], CreateVariantRequestValidator.prototype, "product", void 0);
59
63
  __decorate([
60
64
  (0, class_validator_1.IsString)(),
61
65
  (0, class_validator_1.Length)(0, 50),
62
66
  (0, class_validator_1.IsOptional)(),
63
67
  __metadata("design:type", String)
64
- ], SaveVariantRequestValidator.prototype, "sku", void 0);
68
+ ], CreateVariantRequestValidator.prototype, "sku", void 0);
65
69
  __decorate([
66
70
  (0, class_validator_1.IsNumber)(),
67
71
  (0, class_validator_1.IsOptional)(),
68
72
  __metadata("design:type", Number)
69
- ], SaveVariantRequestValidator.prototype, "price", void 0);
73
+ ], CreateVariantRequestValidator.prototype, "price", void 0);
70
74
  __decorate([
71
75
  (0, class_validator_1.IsInt)(),
72
76
  (0, class_validator_1.Min)(0),
73
77
  (0, class_validator_1.IsOptional)(),
74
78
  __metadata("design:type", Number)
75
- ], SaveVariantRequestValidator.prototype, "minStockLevel", void 0);
79
+ ], CreateVariantRequestValidator.prototype, "minStockLevel", void 0);
76
80
  __decorate([
77
81
  (0, class_validator_1.IsArray)(),
78
82
  (0, class_validator_1.IsOptional)(),
79
83
  (0, class_transformer_1.Type)(() => VariantOptionRequestValidator),
80
84
  (0, class_validator_1.ValidateNested)({ each: true }),
81
85
  __metadata("design:type", Array)
82
- ], SaveVariantRequestValidator.prototype, "options", void 0);
86
+ ], CreateVariantRequestValidator.prototype, "options", void 0);
83
87
  __decorate([
84
88
  (0, class_validator_1.IsBoolean)(),
85
89
  (0, class_validator_1.IsOptional)(),
86
90
  __metadata("design:type", Boolean)
87
- ], SaveVariantRequestValidator.prototype, "active", void 0);
91
+ ], CreateVariantRequestValidator.prototype, "active", void 0);
88
92
  __decorate([
89
93
  (0, class_validator_1.IsString)(),
90
94
  (0, class_validator_1.Length)(0, 50),
91
95
  (0, class_validator_1.IsOptional)(),
92
96
  __metadata("design:type", String)
93
- ], SaveVariantRequestValidator.prototype, "barcode", void 0);
97
+ ], CreateVariantRequestValidator.prototype, "gtin", void 0);
98
+ export class UpdateVariantRequestValidator extends CreateVariantRequestValidator {
99
+ }
@@ -1,23 +1,25 @@
1
1
  import { AssetEntity } from '../../../assets/asset';
2
- import { StockBalanceStatusEnum } from '../../..';
2
+ import { StockBalanceStatusEnum } from '../../stock/balance';
3
3
  import { AbstractEntity } from '../../..';
4
+ import { VariantIdentifierEntity } from '../../..';
5
+ import { VariantPolicyEntity } from '../../..';
4
6
  import type { CatalogAttributeEntity } from '../attribute';
5
7
  import type { CatalogProductEntity } from '../product';
6
8
  import type { StockBalanceEntity } from '../../stock/balance';
7
9
  export declare class CatalogVariantEntity extends AbstractEntity {
8
10
  product?: CatalogProductEntity;
9
- sku?: string;
10
11
  price: number;
11
- minStockLevel: number;
12
+ policy: VariantPolicyEntity;
13
+ identifier: VariantIdentifierEntity;
12
14
  options: {
13
15
  type: CatalogAttributeEntity;
14
16
  value: string;
15
17
  }[];
16
18
  active: boolean;
17
- barcode?: string;
18
19
  pictures: AssetEntity[];
19
20
  readonly total: number;
20
21
  readonly stock: number;
21
22
  readonly status: StockBalanceStatusEnum;
23
+ readonly balance: StockBalanceEntity;
22
24
  readonly balances: StockBalanceEntity[];
23
25
  }
@@ -1,2 +1,2 @@
1
1
  export * from './measurement.entity';
2
- export * from './measurement.validator';
2
+ export * from './request.validator';
@@ -1 +1 @@
1
- export * from './measurement.validator.js';
1
+ export * from './request.validator.js';
@@ -0,0 +1,21 @@
1
+ import { AbstractRequestValidator } from '../../..';
2
+ import type { ConfigurationMeasurementEntity } from './';
3
+ import type { ConfigurationUnitEntity } from '../unit';
4
+ export declare class ConfigurationUnitRequestValidator extends AbstractRequestValidator {
5
+ active?: boolean;
6
+ description?: string;
7
+ isBaseUnit?: boolean;
8
+ name: string;
9
+ symbol: string;
10
+ constructor(unit?: ConfigurationUnitEntity);
11
+ }
12
+ export declare class CreateConfigurationMeasurementRequestValidator extends AbstractRequestValidator {
13
+ name: string;
14
+ description?: string;
15
+ active?: boolean;
16
+ units?: ConfigurationUnitRequestValidator[];
17
+ constructor(measurement?: ConfigurationMeasurementEntity);
18
+ }
19
+ export declare class UpdateConfigurationMeasurementRequestValidator extends CreateConfigurationMeasurementRequestValidator {
20
+ name: string;
21
+ }