@merkaly/api 0.7.1 → 0.9.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.
Files changed (85) hide show
  1. package/dist/app.schemas.d.ts +10 -16
  2. package/dist/contact/customer/customer.entity.d.ts +5 -0
  3. package/dist/contact/customer/customer.enum.d.ts +4 -0
  4. package/dist/contact/customer/customer.enum.js +5 -0
  5. package/dist/contact/customer/request.validator.d.ts +18 -0
  6. package/dist/{order/sale → contact}/customer/request.validator.js +15 -15
  7. package/dist/contact/vendor/index.d.ts +1 -0
  8. package/dist/contact/vendor/index.js +1 -0
  9. package/dist/contact/vendor/vendor.entity.d.ts +6 -0
  10. package/dist/contact.entity.d.ts +11 -0
  11. package/dist/finance/payment/payment.entity.d.ts +3 -3
  12. package/dist/index.d.ts +7 -8
  13. package/dist/index.js +6 -8
  14. package/dist/integration/supplier/index.d.ts +4 -0
  15. package/dist/{order/sale/item → integration/supplier}/index.js +1 -0
  16. package/dist/{supplier/product/product.preview.d.ts → integration/supplier/product.d.ts} +11 -5
  17. package/dist/{supplier/source/source.entity.d.ts → integration/supplier/supplier.entity.d.ts} +1 -1
  18. package/dist/inventory/catalog/product/product.entity.d.ts +5 -3
  19. package/dist/inventory/catalog/variant/variant.entity.d.ts +2 -2
  20. package/dist/order/item/index.d.ts +1 -0
  21. package/dist/order/item/index.js +1 -0
  22. package/dist/order/{sale/item → item}/item.entity.d.ts +3 -3
  23. package/dist/order/purchase/index.d.ts +5 -0
  24. package/dist/order/purchase/index.js +4 -0
  25. package/dist/order/purchase/{item/request.validator.d.ts → item.request.validator.d.ts} +2 -2
  26. package/dist/order/purchase/{item/request.validator.js → item.request.validator.js} +1 -1
  27. package/dist/order/purchase/purchase.entity.d.ts +10 -0
  28. package/dist/order/purchase/purchase.enum.d.ts +8 -0
  29. package/dist/order/purchase/purchase.enum.js +14 -0
  30. package/dist/order/purchase/purchase.transition.d.ts +8 -0
  31. package/dist/order/purchase/purchase.transition.js +19 -0
  32. package/dist/order/purchase/request.validator.d.ts +23 -0
  33. package/dist/order/purchase/{transaction/request.validator.js → request.validator.js} +25 -18
  34. package/dist/order/sale/index.d.ts +5 -0
  35. package/dist/order/sale/index.js +4 -0
  36. package/dist/order/sale/{item/request.validator.d.ts → item.request.validator.d.ts} +2 -2
  37. package/dist/order/sale/{item/request.validator.js → item.request.validator.js} +1 -1
  38. package/dist/order/sale/request.validator.d.ts +24 -0
  39. package/dist/order/sale/{transaction/request.validator.js → request.validator.js} +19 -19
  40. package/dist/order/sale/sale.entity.d.ts +10 -0
  41. package/dist/order/sale/sale.enum.d.ts +9 -0
  42. package/dist/order/sale/sale.enum.js +15 -0
  43. package/dist/order/sale/sale.transition.d.ts +8 -0
  44. package/dist/order/sale/sale.transition.js +20 -0
  45. package/dist/transaction.entity.d.ts +1 -1
  46. package/package.json +1 -1
  47. package/dist/order/purchase/item/index.d.ts +0 -2
  48. package/dist/order/purchase/item/index.js +0 -1
  49. package/dist/order/purchase/item/item.entity.d.ts +0 -19
  50. package/dist/order/purchase/transaction/index.d.ts +0 -4
  51. package/dist/order/purchase/transaction/index.js +0 -3
  52. package/dist/order/purchase/transaction/request.validator.d.ts +0 -22
  53. package/dist/order/purchase/transaction/transaction.entity.d.ts +0 -8
  54. package/dist/order/purchase/transaction/transaction.enum.d.ts +0 -8
  55. package/dist/order/purchase/transaction/transaction.enum.js +0 -14
  56. package/dist/order/purchase/transaction/transaction.transition.d.ts +0 -8
  57. package/dist/order/purchase/transaction/transaction.transition.js +0 -19
  58. package/dist/order/purchase/vendor/index.d.ts +0 -2
  59. package/dist/order/purchase/vendor/index.js +0 -1
  60. package/dist/order/purchase/vendor/request.validator.d.ts +0 -16
  61. package/dist/order/purchase/vendor/request.validator.js +0 -93
  62. package/dist/order/purchase/vendor/vendor.entity.d.ts +0 -11
  63. package/dist/order/sale/customer/customer.entity.d.ts +0 -13
  64. package/dist/order/sale/customer/customer.enum.d.ts +0 -4
  65. package/dist/order/sale/customer/customer.enum.js +0 -5
  66. package/dist/order/sale/customer/request.validator.d.ts +0 -18
  67. package/dist/order/sale/item/index.d.ts +0 -2
  68. package/dist/order/sale/transaction/index.d.ts +0 -4
  69. package/dist/order/sale/transaction/index.js +0 -3
  70. package/dist/order/sale/transaction/request.validator.d.ts +0 -24
  71. package/dist/order/sale/transaction/transaction.entity.d.ts +0 -8
  72. package/dist/order/sale/transaction/transaction.enum.d.ts +0 -9
  73. package/dist/order/sale/transaction/transaction.enum.js +0 -15
  74. package/dist/order/sale/transaction/transaction.transition.d.ts +0 -8
  75. package/dist/order/sale/transaction/transaction.transition.js +0 -20
  76. package/dist/supplier/product/index.d.ts +0 -2
  77. package/dist/supplier/product/index.js +0 -1
  78. package/dist/supplier/source/index.d.ts +0 -2
  79. package/dist/supplier/source/index.js +0 -1
  80. /package/dist/{order/sale → contact}/customer/index.d.ts +0 -0
  81. /package/dist/{order/sale → contact}/customer/index.js +0 -0
  82. /package/dist/{supplier/source → integration/supplier}/provider.enum.d.ts +0 -0
  83. /package/dist/{supplier/source → integration/supplier}/provider.enum.js +0 -0
  84. /package/dist/{supplier/product → integration/supplier}/request.validator.d.ts +0 -0
  85. /package/dist/{supplier/product → integration/supplier}/request.validator.js +0 -0
@@ -5,6 +5,10 @@ export declare abstract class AppSchemas {
5
5
  static get assets(): {
6
6
  files: string;
7
7
  };
8
+ static get contact(): {
9
+ customers: string;
10
+ vendors: string;
11
+ };
8
12
  static get finance(): {
9
13
  payments: string;
10
14
  subscriptions: string;
@@ -19,23 +23,13 @@ export declare abstract class AppSchemas {
19
23
  };
20
24
  };
21
25
  static get order(): {
22
- purchase: {
23
- items: string;
24
- transactions: string;
25
- vendors: string;
26
- };
27
- sale: {
28
- customers: string;
29
- items: string;
30
- transactions: string;
31
- };
32
- service: {
33
- items: string;
34
- transactions: string;
35
- };
26
+ purchaseItems: string;
27
+ purchases: string;
28
+ saleItems: string;
29
+ sales: string;
36
30
  };
37
- static get supplier(): {
38
- sources: string;
31
+ static get integration(): {
32
+ suppliers: string;
39
33
  };
40
34
  static get settings(): {
41
35
  organizations: string;
@@ -0,0 +1,5 @@
1
+ import { ContactEntity } from '../../contact.entity.js';
2
+ import { ContactCustomerTypeEnum } from './customer.enum.js';
3
+ export declare class ContactCustomerEntity extends ContactEntity {
4
+ type: ContactCustomerTypeEnum;
5
+ }
@@ -0,0 +1,4 @@
1
+ export declare enum ContactCustomerTypeEnum {
2
+ B2B = "B2B",
3
+ B2C = "B2C"
4
+ }
@@ -0,0 +1,5 @@
1
+ export var ContactCustomerTypeEnum;
2
+ (function (ContactCustomerTypeEnum) {
3
+ ContactCustomerTypeEnum["B2B"] = "B2B";
4
+ ContactCustomerTypeEnum["B2C"] = "B2C";
5
+ })(ContactCustomerTypeEnum || (ContactCustomerTypeEnum = {}));
@@ -0,0 +1,18 @@
1
+ import { ContactCustomerTypeEnum } from './customer.enum.js';
2
+ import { AbstractRequestValidator } from '../../abstract.validator.js';
3
+ import type { ContactCustomerEntity } from './customer.entity.js';
4
+ export declare class CreateContactCustomerRequestValidator extends AbstractRequestValidator {
5
+ name: string;
6
+ type: ContactCustomerTypeEnum;
7
+ description?: string;
8
+ email?: string;
9
+ logo?: string;
10
+ phone?: string;
11
+ website?: string;
12
+ taxId?: string;
13
+ active?: boolean;
14
+ constructor(customer?: ContactCustomerEntity);
15
+ }
16
+ export declare class UpdateContactCustomerRequestValidator extends CreateContactCustomerRequestValidator {
17
+ name: string;
18
+ }
@@ -10,10 +10,10 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  import * as class_validator_1 from "class-validator";
12
12
  import * as customer_enum_1 from './customer.enum.js';
13
- import * as abstract_validator_1 from '../../../abstract.validator.js';
14
- export class CreateSaleCustomerRequestValidator extends abstract_validator_1.AbstractRequestValidator {
13
+ import * as abstract_validator_1 from '../../abstract.validator.js';
14
+ export class CreateContactCustomerRequestValidator extends abstract_validator_1.AbstractRequestValidator {
15
15
  name;
16
- type = customer_enum_1.SaleCustomerTypeEnum.B2C;
16
+ type = customer_enum_1.ContactCustomerTypeEnum.B2C;
17
17
  description;
18
18
  email;
19
19
  logo;
@@ -44,58 +44,58 @@ __decorate([
44
44
  (0, class_validator_1.IsNotEmpty)(),
45
45
  (0, class_validator_1.Length)(0, 100),
46
46
  __metadata("design:type", String)
47
- ], CreateSaleCustomerRequestValidator.prototype, "name", void 0);
47
+ ], CreateContactCustomerRequestValidator.prototype, "name", void 0);
48
48
  __decorate([
49
- (0, class_validator_1.IsEnum)(customer_enum_1.SaleCustomerTypeEnum),
49
+ (0, class_validator_1.IsEnum)(customer_enum_1.ContactCustomerTypeEnum),
50
50
  (0, class_validator_1.IsOptional)(),
51
51
  __metadata("design:type", String)
52
- ], CreateSaleCustomerRequestValidator.prototype, "type", void 0);
52
+ ], CreateContactCustomerRequestValidator.prototype, "type", void 0);
53
53
  __decorate([
54
54
  (0, class_validator_1.IsString)(),
55
55
  (0, class_validator_1.Length)(0, 1000),
56
56
  (0, class_validator_1.IsOptional)(),
57
57
  __metadata("design:type", String)
58
- ], CreateSaleCustomerRequestValidator.prototype, "description", void 0);
58
+ ], CreateContactCustomerRequestValidator.prototype, "description", void 0);
59
59
  __decorate([
60
60
  (0, class_validator_1.IsEmail)(),
61
61
  (0, class_validator_1.Length)(0, 254),
62
62
  (0, class_validator_1.IsOptional)(),
63
63
  (0, class_validator_1.ValidateIf)((o) => o.email),
64
64
  __metadata("design:type", String)
65
- ], CreateSaleCustomerRequestValidator.prototype, "email", void 0);
65
+ ], CreateContactCustomerRequestValidator.prototype, "email", void 0);
66
66
  __decorate([
67
67
  (0, class_validator_1.IsUrl)(),
68
68
  (0, class_validator_1.Length)(0, 2048),
69
69
  (0, class_validator_1.IsOptional)(),
70
70
  (0, class_validator_1.ValidateIf)((o) => o.logo),
71
71
  __metadata("design:type", String)
72
- ], CreateSaleCustomerRequestValidator.prototype, "logo", void 0);
72
+ ], CreateContactCustomerRequestValidator.prototype, "logo", void 0);
73
73
  __decorate([
74
74
  (0, class_validator_1.IsString)(),
75
75
  (0, class_validator_1.Length)(0, 20),
76
76
  (0, class_validator_1.IsOptional)(),
77
77
  __metadata("design:type", String)
78
- ], CreateSaleCustomerRequestValidator.prototype, "phone", void 0);
78
+ ], CreateContactCustomerRequestValidator.prototype, "phone", void 0);
79
79
  __decorate([
80
80
  (0, class_validator_1.IsString)(),
81
81
  (0, class_validator_1.Length)(0, 2048),
82
82
  (0, class_validator_1.IsOptional)(),
83
83
  __metadata("design:type", String)
84
- ], CreateSaleCustomerRequestValidator.prototype, "website", void 0);
84
+ ], CreateContactCustomerRequestValidator.prototype, "website", void 0);
85
85
  __decorate([
86
86
  (0, class_validator_1.IsString)(),
87
87
  (0, class_validator_1.Length)(0, 20),
88
88
  (0, class_validator_1.IsOptional)(),
89
89
  __metadata("design:type", String)
90
- ], CreateSaleCustomerRequestValidator.prototype, "taxId", void 0);
90
+ ], CreateContactCustomerRequestValidator.prototype, "taxId", void 0);
91
91
  __decorate([
92
92
  (0, class_validator_1.IsBoolean)(),
93
93
  (0, class_validator_1.IsOptional)(),
94
94
  __metadata("design:type", Boolean)
95
- ], CreateSaleCustomerRequestValidator.prototype, "active", void 0);
96
- export class UpdateSaleCustomerRequestValidator extends CreateSaleCustomerRequestValidator {
95
+ ], CreateContactCustomerRequestValidator.prototype, "active", void 0);
96
+ export class UpdateContactCustomerRequestValidator extends CreateContactCustomerRequestValidator {
97
97
  }
98
98
  __decorate([
99
99
  (0, class_validator_1.IsOptional)(),
100
100
  __metadata("design:type", String)
101
- ], UpdateSaleCustomerRequestValidator.prototype, "name", void 0);
101
+ ], UpdateContactCustomerRequestValidator.prototype, "name", void 0);
@@ -0,0 +1 @@
1
+ export * from './vendor.entity';
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,6 @@
1
+ import { ContactEntity } from '../../contact.entity.js';
2
+ import type { IntegrationSupplierEntity } from '../../integration/supplier';
3
+ export declare class ContactVendorEntity extends ContactEntity {
4
+ supplier: IntegrationSupplierEntity;
5
+ externalId: string;
6
+ }
@@ -0,0 +1,11 @@
1
+ import { AbstractEntity } from './abstract.entity.js';
2
+ export declare abstract class ContactEntity extends AbstractEntity {
3
+ name: string;
4
+ description?: string;
5
+ email?: string;
6
+ phone?: string;
7
+ website?: string;
8
+ logo?: string;
9
+ taxId?: string;
10
+ active: boolean;
11
+ }
@@ -1,10 +1,10 @@
1
- import { PurchaseTransactionEntity } from '../../order/purchase/transaction';
2
- import { SaleTransactionEntity } from '../../order/sale/transaction';
1
+ import { OrderPurchaseEntity } from '../../order/purchase';
2
+ import { OrderSaleEntity } from '../../order/sale';
3
3
  import { AbstractEntity } from '../../abstract.entity.js';
4
4
  import { StatusEntity } from '../../status.plugin.js';
5
5
  import { ITransitionable } from '../../transitionable.interface.js';
6
6
  import { FinancePaymentMethodEnum, FinancePaymentStatusEnum, FinancePaymentTypeEnum } from './payment.enum.js';
7
- export type OrderEntity = SaleTransactionEntity | PurchaseTransactionEntity;
7
+ export type OrderEntity = OrderSaleEntity | OrderPurchaseEntity;
8
8
  export declare class FinancePaymentEntity extends AbstractEntity implements ITransitionable<FinancePaymentStatusEnum> {
9
9
  type: FinancePaymentTypeEnum;
10
10
  target: string;
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export * from './not-equal-to.decorator';
5
5
  export * from './address.validator';
6
6
  export * from './address.entity';
7
7
  export * from './transaction.entity';
8
+ export * from './contact.entity';
8
9
  export * from './transitionable.interface';
9
10
  export * from './abstract.entity';
10
11
  export * from './abstract.transition';
@@ -12,18 +13,16 @@ export * from './abstract.validator';
12
13
  export * from './relation.status.enum';
13
14
  export * from './account/user';
14
15
  export * from './assets/asset';
16
+ export * from './contact/customer';
17
+ export * from './contact/vendor';
15
18
  export * from './finance/payment';
19
+ export * from './integration/supplier';
16
20
  export * from './inventory/catalog/brand';
17
21
  export * from './inventory/catalog/category';
18
22
  export * from './inventory/catalog/product';
19
23
  export * from './inventory/catalog/variant';
20
- export * from './order/purchase/item';
21
- export * from './order/purchase/transaction';
22
- export * from './order/purchase/vendor';
23
- export * from './order/sale/customer';
24
- export * from './order/sale/item';
25
- export * from './order/sale/transaction';
24
+ export * from './order/purchase';
25
+ export * from './order/sale';
26
+ export * from './order/item';
26
27
  export * from './settings/organization';
27
- export * from './supplier/product';
28
- export * from './supplier/source';
29
28
  export type { SaveEntityArgs } from './repository.types';
package/dist/index.js CHANGED
@@ -5,17 +5,15 @@ export * from './abstract.validator.js';
5
5
  export * from './relation.status.enum.js';
6
6
  export * from './account/user/index.js';
7
7
  export * from './assets/asset/index.js';
8
+ export * from './contact/customer/index.js';
9
+ export * from './contact/vendor/index.js';
8
10
  export * from './finance/payment/index.js';
11
+ export * from './integration/supplier/index.js';
9
12
  export * from './inventory/catalog/brand/index.js';
10
13
  export * from './inventory/catalog/category/index.js';
11
14
  export * from './inventory/catalog/product/index.js';
12
15
  export * from './inventory/catalog/variant/index.js';
13
- export * from './order/purchase/item/index.js';
14
- export * from './order/purchase/transaction/index.js';
15
- export * from './order/purchase/vendor/index.js';
16
- export * from './order/sale/customer/index.js';
17
- export * from './order/sale/item/index.js';
18
- export * from './order/sale/transaction/index.js';
16
+ export * from './order/purchase/index.js';
17
+ export * from './order/sale/index.js';
18
+ export * from './order/item/index.js';
19
19
  export * from './settings/organization/index.js';
20
- export * from './supplier/product/index.js';
21
- export * from './supplier/source/index.js';
@@ -0,0 +1,4 @@
1
+ export * from './supplier.entity';
2
+ export * from './provider.enum';
3
+ export * from './product';
4
+ export * from './request.validator';
@@ -1 +1,2 @@
1
+ export * from './provider.enum.js';
1
2
  export * from './request.validator.js';
@@ -1,23 +1,29 @@
1
- import type { SupplierProviderEnum } from '../source';
2
- export interface SupplierVariantPreview {
1
+ import type { SupplierProviderEnum } from './provider.enum.js';
2
+ import type { AssetType } from '../../assets/asset';
3
+ export interface SupplierProductAsset {
4
+ type: AssetType;
5
+ url: string;
6
+ }
7
+ export interface SupplierProductVariant {
3
8
  externalVariantId: string;
4
9
  name: string;
5
10
  supplierPrice: number;
6
11
  stock: number;
7
12
  picture?: string;
8
13
  }
9
- export interface SupplierProductPreview {
14
+ export interface SupplierProduct {
10
15
  provider: SupplierProviderEnum;
11
16
  externalProductId: string;
12
17
  name: string;
13
18
  description: string;
14
- pictures: string[];
19
+ assets: SupplierProductAsset[];
15
20
  currency: string;
16
21
  deliveryDays?: number;
17
22
  store?: {
23
+ externalId: string;
18
24
  name: string;
19
25
  rating?: string;
20
26
  };
21
- variants: SupplierVariantPreview[];
27
+ variants: SupplierProductVariant[];
22
28
  importedProduct?: string;
23
29
  }
@@ -1,5 +1,5 @@
1
1
  import { AbstractEntity } from '../../abstract.entity.js';
2
2
  import { SupplierProviderEnum } from './provider.enum.js';
3
- export declare class SupplierSourceEntity extends AbstractEntity {
3
+ export declare class IntegrationSupplierEntity extends AbstractEntity {
4
4
  provider: SupplierProviderEnum;
5
5
  }
@@ -3,13 +3,15 @@ import { AbstractEntity } from '../../../abstract.entity.js';
3
3
  import type { CatalogBrandEntity } from '../brand';
4
4
  import type { CatalogCategoryEntity } from '../category';
5
5
  import type { CatalogVariantEntity } from '../variant';
6
- import type { SupplierSourceEntity } from '../../../supplier/source';
6
+ import type { ContactVendorEntity } from '../../../contact/vendor';
7
+ import type { IntegrationSupplierEntity } from '../../../integration/supplier';
7
8
  export declare class CatalogProductEntity extends AbstractEntity {
8
9
  sku?: string;
9
10
  name: string;
10
11
  description?: string;
11
12
  active: boolean;
12
- source?: SupplierSourceEntity;
13
+ supplier?: IntegrationSupplierEntity;
14
+ vendor?: ContactVendorEntity;
13
15
  externalProductId?: string;
14
16
  variant: CatalogVariantEntity;
15
17
  readonly supplierPrice: number;
@@ -18,6 +20,6 @@ export declare class CatalogProductEntity extends AbstractEntity {
18
20
  brand?: CatalogBrandEntity;
19
21
  hashtags: string[];
20
22
  readonly picture: AssetEntity;
21
- readonly pictures: AssetEntity[];
23
+ readonly assets: AssetEntity[];
22
24
  readonly variants: CatalogVariantEntity[];
23
25
  }
@@ -6,7 +6,7 @@ export declare class CatalogVariantEntity extends AbstractEntity {
6
6
  supplierPrice: number;
7
7
  retailPrice: number;
8
8
  active: boolean;
9
- pictures: AssetEntity[];
9
+ picture?: AssetEntity;
10
+ assets: AssetEntity[];
10
11
  externalVariantId?: string;
11
- readonly picture: AssetEntity;
12
12
  }
@@ -0,0 +1 @@
1
+ export * from './item.entity';
@@ -0,0 +1 @@
1
+
@@ -1,6 +1,6 @@
1
- import { CatalogProductEntity } from '../../../inventory/catalog/product';
2
- import { CatalogVariantEntity } from '../../../inventory/catalog/variant';
3
- import { AbstractEntity } from '../../../abstract.entity.js';
1
+ import { CatalogProductEntity } from '../../inventory/catalog/product';
2
+ import { CatalogVariantEntity } from '../../inventory/catalog/variant';
3
+ import { AbstractEntity } from '../../abstract.entity.js';
4
4
  interface ItemPricing {
5
5
  product: number;
6
6
  readonly total: number;
@@ -0,0 +1,5 @@
1
+ export * from './purchase.entity';
2
+ export * from './purchase.enum';
3
+ export * from './purchase.transition';
4
+ export * from './request.validator';
5
+ export * from './item.request.validator';
@@ -0,0 +1,4 @@
1
+ export * from './purchase.enum.js';
2
+ export * from './purchase.transition.js';
3
+ export * from './request.validator.js';
4
+ export * from './item.request.validator.js';
@@ -1,5 +1,5 @@
1
- import { AbstractRequestValidator } from '../../../abstract.validator.js';
2
- import type { ItemEntity } from '../../sale/item';
1
+ import { AbstractRequestValidator } from '../../abstract.validator.js';
2
+ import type { ItemEntity } from '../item';
3
3
  export declare class PurchaseItemRequestValidator extends AbstractRequestValidator {
4
4
  _id?: string;
5
5
  product: string;
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  import * as class_validator_1 from "class-validator";
12
- import * as abstract_validator_1 from '../../../abstract.validator.js';
12
+ import * as abstract_validator_1 from '../../abstract.validator.js';
13
13
  export class PurchaseItemRequestValidator extends abstract_validator_1.AbstractRequestValidator {
14
14
  _id;
15
15
  product;
@@ -0,0 +1,10 @@
1
+ import { ContactVendorEntity } from '../../contact/vendor';
2
+ import { ItemEntity } from '../item';
3
+ import { TransactionEntity } from '../../transaction.entity.js';
4
+ import { OrderPurchaseStatusEnum } from './purchase.enum.js';
5
+ import type { OrderSaleEntity } from '../sale';
6
+ export declare class OrderPurchaseEntity extends TransactionEntity<OrderPurchaseStatusEnum> {
7
+ vendor?: ContactVendorEntity;
8
+ customerOrder?: OrderSaleEntity;
9
+ items: ItemEntity[];
10
+ }
@@ -0,0 +1,8 @@
1
+ export declare enum OrderPurchaseStatusEnum {
2
+ OPEN = "OPEN",
3
+ ORDERED = "ORDERED",
4
+ RECEIVED = "RECEIVED",
5
+ CANCELLED = "CANCELLED"
6
+ }
7
+ export declare const PURCHASE_OPEN_STATUSES: readonly OrderPurchaseStatusEnum[];
8
+ export declare const PURCHASE_INCOMING_STATUSES: readonly OrderPurchaseStatusEnum[];
@@ -0,0 +1,14 @@
1
+ export var OrderPurchaseStatusEnum;
2
+ (function (OrderPurchaseStatusEnum) {
3
+ OrderPurchaseStatusEnum["OPEN"] = "OPEN";
4
+ OrderPurchaseStatusEnum["ORDERED"] = "ORDERED";
5
+ OrderPurchaseStatusEnum["RECEIVED"] = "RECEIVED";
6
+ OrderPurchaseStatusEnum["CANCELLED"] = "CANCELLED";
7
+ })(OrderPurchaseStatusEnum || (OrderPurchaseStatusEnum = {}));
8
+ export const PURCHASE_OPEN_STATUSES = [
9
+ OrderPurchaseStatusEnum.OPEN,
10
+ OrderPurchaseStatusEnum.ORDERED,
11
+ ];
12
+ export const PURCHASE_INCOMING_STATUSES = [
13
+ OrderPurchaseStatusEnum.ORDERED,
14
+ ];
@@ -0,0 +1,8 @@
1
+ import { AbstractTransition } from '../../abstract.transition.js';
2
+ import { OrderPurchaseStatusEnum as Status } from './purchase.enum.js';
3
+
4
+ export declare class OrderPurchaseTransition extends AbstractTransition<Status, unknown> {
5
+ protected readonly $states: Readonly<Record<Status, readonly Status[]>>;
6
+ constructor(status?: Status);
7
+ readonly initialStates: readonly Status[];
8
+ }
@@ -0,0 +1,19 @@
1
+ import { AbstractTransition } from '../../abstract.transition.js';
2
+ import * as purchase_enum_1 from './purchase.enum.js';
3
+
4
+ export class OrderPurchaseTransition extends AbstractTransition {
5
+ $states = {
6
+ [purchase_enum_1.OrderPurchaseStatusEnum.OPEN]: [],
7
+ [purchase_enum_1.OrderPurchaseStatusEnum.ORDERED]: [],
8
+ [purchase_enum_1.OrderPurchaseStatusEnum.RECEIVED]: [],
9
+ [purchase_enum_1.OrderPurchaseStatusEnum.CANCELLED]: [],
10
+ };
11
+
12
+ constructor(status = purchase_enum_1.OrderPurchaseStatusEnum.OPEN) {
13
+ super(status);
14
+ }
15
+
16
+ get initialStates() {
17
+ return [purchase_enum_1.OrderPurchaseStatusEnum.OPEN];
18
+ }
19
+ }
@@ -0,0 +1,23 @@
1
+ import { FinancePaymentStatusEnum, FinancePaymentMethodEnum } from '../../finance/payment';
2
+ import { OrderPurchaseStatusEnum } from './purchase.enum.js';
3
+ import { AbstractRequestValidator } from '../../abstract.validator.js';
4
+ import { PurchaseItemRequestValidator } from './item.request.validator.js';
5
+ import type { OrderPurchaseEntity } from './purchase.entity.js';
6
+ export declare class CreatePurchaseRequestValidator extends AbstractRequestValidator {
7
+ items: PurchaseItemRequestValidator[];
8
+ method: FinancePaymentMethodEnum;
9
+ notes?: string;
10
+ vendor?: string;
11
+ customerOrder?: string;
12
+ payment: FinancePaymentStatusEnum;
13
+ status?: OrderPurchaseStatusEnum;
14
+ constructor(order?: OrderPurchaseEntity);
15
+ get total(): {
16
+ units: number;
17
+ price: number;
18
+ };
19
+ }
20
+ export declare class UpdatePurchaseRequestValidator extends CreatePurchaseRequestValidator {
21
+ items: PurchaseItemRequestValidator[];
22
+ method: FinancePaymentMethodEnum;
23
+ }
@@ -10,17 +10,18 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  import * as class_transformer_1 from "class-transformer";
12
12
  import * as class_validator_1 from "class-validator";
13
- import * as payment_enum_1 from '../../../finance/payment/index.js';
14
- import * as transaction_enum_1 from './transaction.enum.js';
15
- import * as abstract_validator_1 from '../../../abstract.validator.js';
16
- import * as request_validator_1 from '../item/index.js';
17
- export class CreatePurchaseTransactionRequestValidator extends abstract_validator_1.AbstractRequestValidator {
13
+ import * as payment_enum_1 from '../../finance/payment/index.js';
14
+ import * as purchase_enum_1 from './purchase.enum.js';
15
+ import * as abstract_validator_1 from '../../abstract.validator.js';
16
+ import * as item_request_validator_1 from './item.request.validator.js';
17
+ export class CreatePurchaseRequestValidator extends abstract_validator_1.AbstractRequestValidator {
18
18
  items = [];
19
19
  method;
20
20
  notes;
21
21
  vendor;
22
+ customerOrder;
22
23
  payment = payment_enum_1.FinancePaymentStatusEnum.PENDING;
23
- status = transaction_enum_1.PurchaseTransactionStatusEnum.OPEN;
24
+ status = purchase_enum_1.OrderPurchaseStatusEnum.OPEN;
24
25
  constructor(order) {
25
26
  super();
26
27
  if (!order) {
@@ -29,13 +30,14 @@ export class CreatePurchaseTransactionRequestValidator extends abstract_validato
29
30
  this.notes = order.notes;
30
31
  this.method = order.payment?.method;
31
32
  this.vendor = (order.vendor?._id || order.vendor);
33
+ this.customerOrder = (order.customerOrder?._id || order.customerOrder);
32
34
  if (order.status !== undefined) {
33
35
  this.status = order.status;
34
36
  }
35
37
  if (order.payment?.status !== undefined) {
36
38
  this.payment = order.payment.status;
37
39
  }
38
- this.items = order.items?.map((it) => new request_validator_1.PurchaseItemRequestValidator(it)) ?? this.items;
40
+ this.items = order.items?.map((it) => new item_request_validator_1.PurchaseItemRequestValidator(it)) ?? this.items;
39
41
  }
40
42
  get total() {
41
43
  return this.items.reduce((acc, item) => {
@@ -47,44 +49,49 @@ export class CreatePurchaseTransactionRequestValidator extends abstract_validato
47
49
  }
48
50
  __decorate([
49
51
  (0, class_validator_1.IsArray)(),
50
- (0, class_transformer_1.Type)(() => request_validator_1.PurchaseItemRequestValidator),
52
+ (0, class_transformer_1.Type)(() => item_request_validator_1.PurchaseItemRequestValidator),
51
53
  (0, class_validator_1.ValidateNested)({ each: true }),
52
54
  __metadata("design:type", Array)
53
- ], CreatePurchaseTransactionRequestValidator.prototype, "items", void 0);
55
+ ], CreatePurchaseRequestValidator.prototype, "items", void 0);
54
56
  __decorate([
55
57
  (0, class_validator_1.IsEnum)(payment_enum_1.FinancePaymentMethodEnum),
56
58
  __metadata("design:type", String)
57
- ], CreatePurchaseTransactionRequestValidator.prototype, "method", void 0);
59
+ ], CreatePurchaseRequestValidator.prototype, "method", void 0);
58
60
  __decorate([
59
61
  (0, class_validator_1.IsString)(),
60
62
  (0, class_validator_1.Length)(0, 500),
61
63
  (0, class_validator_1.IsOptional)(),
62
64
  __metadata("design:type", String)
63
- ], CreatePurchaseTransactionRequestValidator.prototype, "notes", void 0);
65
+ ], CreatePurchaseRequestValidator.prototype, "notes", void 0);
64
66
  __decorate([
65
67
  (0, class_validator_1.IsMongoId)(),
66
68
  (0, class_validator_1.IsOptional)(),
67
69
  __metadata("design:type", String)
68
- ], CreatePurchaseTransactionRequestValidator.prototype, "vendor", void 0);
70
+ ], CreatePurchaseRequestValidator.prototype, "vendor", void 0);
71
+ __decorate([
72
+ (0, class_validator_1.IsMongoId)(),
73
+ (0, class_validator_1.IsOptional)(),
74
+ __metadata("design:type", String)
75
+ ], CreatePurchaseRequestValidator.prototype, "customerOrder", void 0);
69
76
  __decorate([
70
77
  (0, class_validator_1.IsEnum)(payment_enum_1.FinancePaymentStatusEnum),
71
78
  (0, class_validator_1.IsDefined)(),
72
79
  (0, class_validator_1.IsOptional)(),
73
80
  __metadata("design:type", String)
74
- ], CreatePurchaseTransactionRequestValidator.prototype, "payment", void 0);
81
+ ], CreatePurchaseRequestValidator.prototype, "payment", void 0);
75
82
  __decorate([
76
- (0, class_validator_1.IsEnum)(transaction_enum_1.PurchaseTransactionStatusEnum),
83
+ (0, class_validator_1.IsEnum)(purchase_enum_1.OrderPurchaseStatusEnum),
77
84
  (0, class_validator_1.IsDefined)(),
78
85
  (0, class_validator_1.IsOptional)(),
79
86
  __metadata("design:type", Object)
80
- ], CreatePurchaseTransactionRequestValidator.prototype, "status", void 0);
81
- export class UpdatePurchaseTransactionRequestValidator extends CreatePurchaseTransactionRequestValidator {
87
+ ], CreatePurchaseRequestValidator.prototype, "status", void 0);
88
+ export class UpdatePurchaseRequestValidator extends CreatePurchaseRequestValidator {
82
89
  }
83
90
  __decorate([
84
91
  (0, class_validator_1.IsOptional)(),
85
92
  __metadata("design:type", Array)
86
- ], UpdatePurchaseTransactionRequestValidator.prototype, "items", void 0);
93
+ ], UpdatePurchaseRequestValidator.prototype, "items", void 0);
87
94
  __decorate([
88
95
  (0, class_validator_1.IsOptional)(),
89
96
  __metadata("design:type", String)
90
- ], UpdatePurchaseTransactionRequestValidator.prototype, "method", void 0);
97
+ ], UpdatePurchaseRequestValidator.prototype, "method", void 0);
@@ -0,0 +1,5 @@
1
+ export * from './sale.entity';
2
+ export * from './sale.enum';
3
+ export * from './sale.transition';
4
+ export * from './request.validator';
5
+ export * from './item.request.validator';
@@ -0,0 +1,4 @@
1
+ export * from './sale.enum.js';
2
+ export * from './sale.transition.js';
3
+ export * from './request.validator.js';
4
+ export * from './item.request.validator.js';
@@ -1,5 +1,5 @@
1
- import { AbstractRequestValidator } from '../../../abstract.validator.js';
2
- import type { ItemEntity } from './item.entity.js';
1
+ import { AbstractRequestValidator } from '../../abstract.validator.js';
2
+ import type { ItemEntity } from '../item';
3
3
  export declare class SaleItemRequestValidator extends AbstractRequestValidator {
4
4
  _id?: string;
5
5
  product: string;
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  import * as class_validator_1 from "class-validator";
12
- import * as abstract_validator_1 from '../../../abstract.validator.js';
12
+ import * as abstract_validator_1 from '../../abstract.validator.js';
13
13
  export class SaleItemRequestValidator extends abstract_validator_1.AbstractRequestValidator {
14
14
  _id;
15
15
  product;