@merkaly/api 0.8.0 → 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 (52) hide show
  1. package/dist/app.schemas.d.ts +4 -12
  2. package/dist/finance/payment/payment.entity.d.ts +3 -3
  3. package/dist/index.d.ts +3 -4
  4. package/dist/index.js +3 -4
  5. package/dist/order/item/index.d.ts +1 -0
  6. package/dist/order/item/index.js +1 -0
  7. package/dist/order/{sale/item → item}/item.entity.d.ts +3 -3
  8. package/dist/order/purchase/index.d.ts +5 -0
  9. package/dist/order/purchase/index.js +4 -0
  10. package/dist/order/purchase/{item/request.validator.d.ts → item.request.validator.d.ts} +2 -2
  11. package/dist/order/purchase/{item/request.validator.js → item.request.validator.js} +1 -1
  12. package/dist/order/purchase/purchase.entity.d.ts +10 -0
  13. package/dist/order/purchase/purchase.enum.d.ts +8 -0
  14. package/dist/order/purchase/purchase.enum.js +14 -0
  15. package/dist/order/purchase/purchase.transition.d.ts +8 -0
  16. package/dist/order/purchase/purchase.transition.js +19 -0
  17. package/dist/order/purchase/request.validator.d.ts +23 -0
  18. package/dist/order/purchase/{transaction/request.validator.js → request.validator.js} +25 -18
  19. package/dist/order/sale/index.d.ts +5 -0
  20. package/dist/order/sale/index.js +4 -0
  21. package/dist/order/sale/{item/request.validator.d.ts → item.request.validator.d.ts} +2 -2
  22. package/dist/order/sale/{item/request.validator.js → item.request.validator.js} +1 -1
  23. package/dist/order/sale/request.validator.d.ts +24 -0
  24. package/dist/order/sale/{transaction/request.validator.js → request.validator.js} +19 -19
  25. package/dist/order/sale/sale.entity.d.ts +10 -0
  26. package/dist/order/sale/sale.enum.d.ts +9 -0
  27. package/dist/order/sale/sale.enum.js +15 -0
  28. package/dist/order/sale/sale.transition.d.ts +8 -0
  29. package/dist/order/sale/sale.transition.js +20 -0
  30. package/dist/transaction.entity.d.ts +1 -1
  31. package/package.json +1 -1
  32. package/dist/order/purchase/item/index.d.ts +0 -2
  33. package/dist/order/purchase/item/index.js +0 -1
  34. package/dist/order/purchase/item/item.entity.d.ts +0 -19
  35. package/dist/order/purchase/transaction/index.d.ts +0 -4
  36. package/dist/order/purchase/transaction/index.js +0 -3
  37. package/dist/order/purchase/transaction/request.validator.d.ts +0 -22
  38. package/dist/order/purchase/transaction/transaction.entity.d.ts +0 -8
  39. package/dist/order/purchase/transaction/transaction.enum.d.ts +0 -8
  40. package/dist/order/purchase/transaction/transaction.enum.js +0 -14
  41. package/dist/order/purchase/transaction/transaction.transition.d.ts +0 -8
  42. package/dist/order/purchase/transaction/transaction.transition.js +0 -19
  43. package/dist/order/sale/item/index.d.ts +0 -2
  44. package/dist/order/sale/item/index.js +0 -1
  45. package/dist/order/sale/transaction/index.d.ts +0 -4
  46. package/dist/order/sale/transaction/index.js +0 -3
  47. package/dist/order/sale/transaction/request.validator.d.ts +0 -24
  48. package/dist/order/sale/transaction/transaction.entity.d.ts +0 -8
  49. package/dist/order/sale/transaction/transaction.enum.d.ts +0 -9
  50. package/dist/order/sale/transaction/transaction.enum.js +0 -15
  51. package/dist/order/sale/transaction/transaction.transition.d.ts +0 -8
  52. package/dist/order/sale/transaction/transaction.transition.js +0 -20
@@ -23,18 +23,10 @@ export declare abstract class AppSchemas {
23
23
  };
24
24
  };
25
25
  static get order(): {
26
- purchase: {
27
- items: string;
28
- transactions: string;
29
- };
30
- sale: {
31
- items: string;
32
- transactions: string;
33
- };
34
- service: {
35
- items: string;
36
- transactions: string;
37
- };
26
+ purchaseItems: string;
27
+ purchases: string;
28
+ saleItems: string;
29
+ sales: string;
38
30
  };
39
31
  static get integration(): {
40
32
  suppliers: string;
@@ -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
@@ -21,9 +21,8 @@ export * from './inventory/catalog/brand';
21
21
  export * from './inventory/catalog/category';
22
22
  export * from './inventory/catalog/product';
23
23
  export * from './inventory/catalog/variant';
24
- export * from './order/purchase/item';
25
- export * from './order/purchase/transaction';
26
- export * from './order/sale/item';
27
- export * from './order/sale/transaction';
24
+ export * from './order/purchase';
25
+ export * from './order/sale';
26
+ export * from './order/item';
28
27
  export * from './settings/organization';
29
28
  export type { SaveEntityArgs } from './repository.types';
package/dist/index.js CHANGED
@@ -13,8 +13,7 @@ export * from './inventory/catalog/brand/index.js';
13
13
  export * from './inventory/catalog/category/index.js';
14
14
  export * from './inventory/catalog/product/index.js';
15
15
  export * from './inventory/catalog/variant/index.js';
16
- export * from './order/purchase/item/index.js';
17
- export * from './order/purchase/transaction/index.js';
18
- export * from './order/sale/item/index.js';
19
- 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';
20
19
  export * from './settings/organization/index.js';
@@ -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;
@@ -0,0 +1,24 @@
1
+ import { FinancePaymentStatusEnum, FinancePaymentMethodEnum } from '../../finance/payment';
2
+ import { OrderSaleStatusEnum } from './sale.enum.js';
3
+ import { AbstractRequestValidator } from '../../abstract.validator.js';
4
+ import { SaleItemRequestValidator } from './item.request.validator.js';
5
+ import type { OrderSaleEntity } from './sale.entity.js';
6
+ export declare class CreateSaleRequestValidator extends AbstractRequestValidator {
7
+ items: SaleItemRequestValidator[];
8
+ method: FinancePaymentMethodEnum;
9
+ notes?: string;
10
+ customer?: string;
11
+ payment: FinancePaymentStatusEnum;
12
+ status?: OrderSaleStatusEnum;
13
+ constructor(order?: OrderSaleEntity);
14
+ get total(): {
15
+ units: number;
16
+ price: number;
17
+ };
18
+ }
19
+ export declare class UpdateSaleRequestValidator extends CreateSaleRequestValidator {
20
+ items: SaleItemRequestValidator[];
21
+ payment: any;
22
+ method: FinancePaymentMethodEnum;
23
+ status: any;
24
+ }
@@ -10,17 +10,17 @@ 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 CreateSaleTransactionRequestValidator extends abstract_validator_1.AbstractRequestValidator {
13
+ import * as payment_enum_1 from '../../finance/payment/index.js';
14
+ import * as sale_enum_1 from './sale.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 CreateSaleRequestValidator extends abstract_validator_1.AbstractRequestValidator {
18
18
  items = [];
19
19
  method;
20
20
  notes;
21
21
  customer;
22
22
  payment = payment_enum_1.FinancePaymentStatusEnum.PENDING;
23
- status = transaction_enum_1.SaleTransactionStatusEnum.OPEN;
23
+ status = sale_enum_1.OrderSaleStatusEnum.OPEN;
24
24
  constructor(order) {
25
25
  super();
26
26
  if (!order) {
@@ -35,7 +35,7 @@ export class CreateSaleTransactionRequestValidator extends abstract_validator_1.
35
35
  if (order.payment?.status !== undefined) {
36
36
  this.payment = order.payment.status;
37
37
  }
38
- this.items = order.items?.map((it) => new request_validator_1.SaleItemRequestValidator(it)) ?? this.items;
38
+ this.items = order.items?.map((it) => new item_request_validator_1.SaleItemRequestValidator(it)) ?? this.items;
39
39
  }
40
40
  get total() {
41
41
  return this.items.reduce((acc, item) => {
@@ -47,51 +47,51 @@ export class CreateSaleTransactionRequestValidator extends abstract_validator_1.
47
47
  }
48
48
  __decorate([
49
49
  (0, class_validator_1.IsArray)(),
50
- (0, class_transformer_1.Type)(() => request_validator_1.SaleItemRequestValidator),
50
+ (0, class_transformer_1.Type)(() => item_request_validator_1.SaleItemRequestValidator),
51
51
  (0, class_validator_1.ValidateNested)({ each: true }),
52
52
  __metadata("design:type", Array)
53
- ], CreateSaleTransactionRequestValidator.prototype, "items", void 0);
53
+ ], CreateSaleRequestValidator.prototype, "items", void 0);
54
54
  __decorate([
55
55
  (0, class_validator_1.IsEnum)(payment_enum_1.FinancePaymentMethodEnum),
56
56
  __metadata("design:type", String)
57
- ], CreateSaleTransactionRequestValidator.prototype, "method", void 0);
57
+ ], CreateSaleRequestValidator.prototype, "method", void 0);
58
58
  __decorate([
59
59
  (0, class_validator_1.IsString)(),
60
60
  (0, class_validator_1.Length)(0, 500),
61
61
  (0, class_validator_1.IsOptional)(),
62
62
  __metadata("design:type", String)
63
- ], CreateSaleTransactionRequestValidator.prototype, "notes", void 0);
63
+ ], CreateSaleRequestValidator.prototype, "notes", void 0);
64
64
  __decorate([
65
65
  (0, class_validator_1.IsMongoId)(),
66
66
  (0, class_validator_1.IsOptional)(),
67
67
  __metadata("design:type", String)
68
- ], CreateSaleTransactionRequestValidator.prototype, "customer", void 0);
68
+ ], CreateSaleRequestValidator.prototype, "customer", void 0);
69
69
  __decorate([
70
70
  (0, class_validator_1.IsEnum)(payment_enum_1.FinancePaymentStatusEnum),
71
71
  (0, class_validator_1.IsDefined)(),
72
72
  (0, class_validator_1.IsOptional)(),
73
73
  __metadata("design:type", String)
74
- ], CreateSaleTransactionRequestValidator.prototype, "payment", void 0);
74
+ ], CreateSaleRequestValidator.prototype, "payment", void 0);
75
75
  __decorate([
76
- (0, class_validator_1.IsEnum)(transaction_enum_1.SaleTransactionStatusEnum),
76
+ (0, class_validator_1.IsEnum)(sale_enum_1.OrderSaleStatusEnum),
77
77
  (0, class_validator_1.IsDefined)(),
78
78
  (0, class_validator_1.IsOptional)(),
79
79
  __metadata("design:type", Object)
80
- ], CreateSaleTransactionRequestValidator.prototype, "status", void 0);
81
- export class UpdateSaleTransactionRequestValidator extends CreateSaleTransactionRequestValidator {
80
+ ], CreateSaleRequestValidator.prototype, "status", void 0);
81
+ export class UpdateSaleRequestValidator extends CreateSaleRequestValidator {
82
82
  payment = undefined;
83
83
  status = undefined;
84
84
  }
85
85
  __decorate([
86
86
  (0, class_validator_1.IsOptional)(),
87
87
  __metadata("design:type", Array)
88
- ], UpdateSaleTransactionRequestValidator.prototype, "items", void 0);
88
+ ], UpdateSaleRequestValidator.prototype, "items", void 0);
89
89
  __decorate([
90
90
  (0, class_validator_1.ValidateIf)(() => false),
91
91
  (0, class_transformer_1.Transform)(() => undefined),
92
92
  __metadata("design:type", Object)
93
- ], UpdateSaleTransactionRequestValidator.prototype, "payment", void 0);
93
+ ], UpdateSaleRequestValidator.prototype, "payment", void 0);
94
94
  __decorate([
95
95
  (0, class_validator_1.IsOptional)(),
96
96
  __metadata("design:type", String)
97
- ], UpdateSaleTransactionRequestValidator.prototype, "method", void 0);
97
+ ], UpdateSaleRequestValidator.prototype, "method", void 0);
@@ -0,0 +1,10 @@
1
+ import { ContactCustomerEntity } from '../../contact/customer';
2
+ import { ItemEntity } from '../item';
3
+ import { TransactionEntity } from '../../transaction.entity.js';
4
+ import { OrderSaleStatusEnum } from './sale.enum.js';
5
+ import type { OrderPurchaseEntity } from '../purchase';
6
+ export declare class OrderSaleEntity extends TransactionEntity<OrderSaleStatusEnum> {
7
+ customer: ContactCustomerEntity;
8
+ items: ItemEntity[];
9
+ readonly purchases: OrderPurchaseEntity[];
10
+ }
@@ -0,0 +1,9 @@
1
+ export declare enum OrderSaleStatusEnum {
2
+ OPEN = "OPEN",
3
+ IN_PROGRESS = "IN_PROGRESS",
4
+ COMPLETED = "COMPLETED",
5
+ CANCELLED = "CANCELLED",
6
+ RETURNED = "RETURNED"
7
+ }
8
+ export declare const SALE_PRE_FULFILLMENT_STATUSES: readonly OrderSaleStatusEnum[];
9
+ export declare const SALE_OPEN_STATUSES: readonly OrderSaleStatusEnum[];
@@ -0,0 +1,15 @@
1
+ export var OrderSaleStatusEnum;
2
+ (function (OrderSaleStatusEnum) {
3
+ OrderSaleStatusEnum["OPEN"] = "OPEN";
4
+ OrderSaleStatusEnum["IN_PROGRESS"] = "IN_PROGRESS";
5
+ OrderSaleStatusEnum["COMPLETED"] = "COMPLETED";
6
+ OrderSaleStatusEnum["CANCELLED"] = "CANCELLED";
7
+ OrderSaleStatusEnum["RETURNED"] = "RETURNED";
8
+ })(OrderSaleStatusEnum || (OrderSaleStatusEnum = {}));
9
+ export const SALE_PRE_FULFILLMENT_STATUSES = [
10
+ OrderSaleStatusEnum.OPEN,
11
+ ];
12
+ export const SALE_OPEN_STATUSES = [
13
+ ...SALE_PRE_FULFILLMENT_STATUSES,
14
+ OrderSaleStatusEnum.IN_PROGRESS,
15
+ ];
@@ -0,0 +1,8 @@
1
+ import { AbstractTransition } from '../../abstract.transition.js';
2
+ import { OrderSaleStatusEnum as Status } from './sale.enum.js';
3
+
4
+ export declare class OrderSaleTransition 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,20 @@
1
+ import { AbstractTransition } from '../../abstract.transition.js';
2
+ import * as sale_enum_1 from './sale.enum.js';
3
+
4
+ export class OrderSaleTransition extends AbstractTransition {
5
+ $states = {
6
+ [sale_enum_1.OrderSaleStatusEnum.OPEN]: [],
7
+ [sale_enum_1.OrderSaleStatusEnum.IN_PROGRESS]: [],
8
+ [sale_enum_1.OrderSaleStatusEnum.COMPLETED]: [],
9
+ [sale_enum_1.OrderSaleStatusEnum.CANCELLED]: [],
10
+ [sale_enum_1.OrderSaleStatusEnum.RETURNED]: [],
11
+ };
12
+
13
+ constructor(status = sale_enum_1.OrderSaleStatusEnum.OPEN) {
14
+ super(status);
15
+ }
16
+
17
+ get initialStates() {
18
+ return [sale_enum_1.OrderSaleStatusEnum.OPEN];
19
+ }
20
+ }
@@ -3,7 +3,7 @@ import { FinancePaymentEntity } from './finance/payment';
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
- import { ItemEntity } from './order/sale/item';
6
+ import { ItemEntity } from './order/item';
7
7
  export interface TransactionCapabilities {
8
8
  addItems: boolean;
9
9
  editItems: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@merkaly/api",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "type": "module",
5
5
  "description": "Shared TypeScript interfaces and enums for Merkaly API",
6
6
  "repository": {
@@ -1,2 +0,0 @@
1
- export * from './item.entity';
2
- export * from './request.validator';
@@ -1 +0,0 @@
1
- export * from './request.validator.js';
@@ -1,19 +0,0 @@
1
- import { CatalogProductEntity } from '../../../inventory/catalog/product';
2
- import { CatalogVariantEntity } from '../../../inventory/catalog/variant';
3
- import { AbstractEntity } from '../../../abstract.entity.js';
4
- interface ItemPricing {
5
- product: number;
6
- readonly total: number;
7
- readonly unit: number;
8
- variant: number;
9
- }
10
- export declare class ItemEntity extends AbstractEntity {
11
- product?: CatalogProductEntity;
12
- variant: CatalogVariantEntity;
13
- quantity: number;
14
- notes: string;
15
- price: ItemPricing;
16
- readonly 'price.unit': number;
17
- readonly 'price.total': number;
18
- }
19
- export {};
@@ -1,4 +0,0 @@
1
- export * from './transaction.entity';
2
- export * from './request.validator';
3
- export * from './transaction.enum';
4
- export * from './transaction.transition';
@@ -1,3 +0,0 @@
1
- export * from './request.validator.js';
2
- export * from './transaction.enum.js';
3
- export * from './transaction.transition.js';
@@ -1,22 +0,0 @@
1
- import { FinancePaymentStatusEnum, FinancePaymentMethodEnum } from '../../../finance/payment';
2
- import { PurchaseTransactionStatusEnum } from './transaction.enum.js';
3
- import { AbstractRequestValidator } from '../../../abstract.validator.js';
4
- import { PurchaseItemRequestValidator } from '../item';
5
- import type { PurchaseTransactionEntity } from './transaction.entity.js';
6
- export declare class CreatePurchaseTransactionRequestValidator extends AbstractRequestValidator {
7
- items: PurchaseItemRequestValidator[];
8
- method: FinancePaymentMethodEnum;
9
- notes?: string;
10
- vendor?: string;
11
- payment: FinancePaymentStatusEnum;
12
- status?: PurchaseTransactionStatusEnum;
13
- constructor(order?: PurchaseTransactionEntity);
14
- get total(): {
15
- units: number;
16
- price: number;
17
- };
18
- }
19
- export declare class UpdatePurchaseTransactionRequestValidator extends CreatePurchaseTransactionRequestValidator {
20
- items: PurchaseItemRequestValidator[];
21
- method: FinancePaymentMethodEnum;
22
- }
@@ -1,8 +0,0 @@
1
- import { ContactVendorEntity } from '../../../contact/vendor';
2
- import { ItemEntity } from '../../sale/item';
3
- import { TransactionEntity } from '../../../transaction.entity.js';
4
- import { PurchaseTransactionStatusEnum } from './transaction.enum.js';
5
- export declare class PurchaseTransactionEntity extends TransactionEntity<PurchaseTransactionStatusEnum> {
6
- vendor?: ContactVendorEntity;
7
- items: ItemEntity[];
8
- }
@@ -1,8 +0,0 @@
1
- export declare enum PurchaseTransactionStatusEnum {
2
- OPEN = "OPEN",
3
- ORDERED = "ORDERED",
4
- RECEIVED = "RECEIVED",
5
- CANCELLED = "CANCELLED"
6
- }
7
- export declare const PURCHASE_OPEN_TRANSACTION_STATUSES: readonly PurchaseTransactionStatusEnum[];
8
- export declare const PURCHASE_INCOMING_TRANSACTION_STATUSES: readonly PurchaseTransactionStatusEnum[];
@@ -1,14 +0,0 @@
1
- export var PurchaseTransactionStatusEnum;
2
- (function (PurchaseTransactionStatusEnum) {
3
- PurchaseTransactionStatusEnum["OPEN"] = "OPEN";
4
- PurchaseTransactionStatusEnum["ORDERED"] = "ORDERED";
5
- PurchaseTransactionStatusEnum["RECEIVED"] = "RECEIVED";
6
- PurchaseTransactionStatusEnum["CANCELLED"] = "CANCELLED";
7
- })(PurchaseTransactionStatusEnum || (PurchaseTransactionStatusEnum = {}));
8
- export const PURCHASE_OPEN_TRANSACTION_STATUSES = [
9
- PurchaseTransactionStatusEnum.OPEN,
10
- PurchaseTransactionStatusEnum.ORDERED,
11
- ];
12
- export const PURCHASE_INCOMING_TRANSACTION_STATUSES = [
13
- PurchaseTransactionStatusEnum.ORDERED,
14
- ];
@@ -1,8 +0,0 @@
1
- import { AbstractTransition } from '../../../abstract.transition.js';
2
- import { PurchaseTransactionStatusEnum as Status } from './transaction.enum.js';
3
-
4
- export declare class PurchaseTransactionTransition extends AbstractTransition<Status, unknown> {
5
- protected readonly $states: Readonly<Record<Status, readonly Status[]>>;
6
- constructor(status?: Status);
7
- readonly initialStates: readonly Status[];
8
- }
@@ -1,19 +0,0 @@
1
- import { AbstractTransition } from '../../../abstract.transition.js';
2
- import * as transaction_enum_1 from './transaction.enum.js';
3
-
4
- export class PurchaseTransactionTransition extends AbstractTransition {
5
- $states = {
6
- [transaction_enum_1.PurchaseTransactionStatusEnum.OPEN]: [],
7
- [transaction_enum_1.PurchaseTransactionStatusEnum.ORDERED]: [],
8
- [transaction_enum_1.PurchaseTransactionStatusEnum.RECEIVED]: [],
9
- [transaction_enum_1.PurchaseTransactionStatusEnum.CANCELLED]: [],
10
- };
11
-
12
- constructor(status = transaction_enum_1.PurchaseTransactionStatusEnum.OPEN) {
13
- super(status);
14
- }
15
-
16
- get initialStates() {
17
- return [transaction_enum_1.PurchaseTransactionStatusEnum.OPEN];
18
- }
19
- }
@@ -1,2 +0,0 @@
1
- export * from './item.entity';
2
- export * from './request.validator';
@@ -1 +0,0 @@
1
- export * from './request.validator.js';
@@ -1,4 +0,0 @@
1
- export * from './transaction.entity';
2
- export * from './request.validator';
3
- export * from './transaction.enum';
4
- export * from './transaction.transition';
@@ -1,3 +0,0 @@
1
- export * from './request.validator.js';
2
- export * from './transaction.enum.js';
3
- export * from './transaction.transition.js';
@@ -1,24 +0,0 @@
1
- import { FinancePaymentStatusEnum, FinancePaymentMethodEnum } from '../../../finance/payment';
2
- import { SaleTransactionStatusEnum } from './transaction.enum.js';
3
- import { AbstractRequestValidator } from '../../../abstract.validator.js';
4
- import { SaleItemRequestValidator } from '../item';
5
- import type { SaleTransactionEntity } from './transaction.entity.js';
6
- export declare class CreateSaleTransactionRequestValidator extends AbstractRequestValidator {
7
- items: SaleItemRequestValidator[];
8
- method: FinancePaymentMethodEnum;
9
- notes?: string;
10
- customer?: string;
11
- payment: FinancePaymentStatusEnum;
12
- status?: SaleTransactionStatusEnum;
13
- constructor(order?: SaleTransactionEntity);
14
- get total(): {
15
- units: number;
16
- price: number;
17
- };
18
- }
19
- export declare class UpdateSaleTransactionRequestValidator extends CreateSaleTransactionRequestValidator {
20
- items: SaleItemRequestValidator[];
21
- payment: any;
22
- method: FinancePaymentMethodEnum;
23
- status: any;
24
- }
@@ -1,8 +0,0 @@
1
- import { ContactCustomerEntity } from '../../../contact/customer';
2
- import { ItemEntity } from '../item';
3
- import { TransactionEntity } from '../../../transaction.entity.js';
4
- import { SaleTransactionStatusEnum } from './transaction.enum.js';
5
- export declare class SaleTransactionEntity extends TransactionEntity<SaleTransactionStatusEnum> {
6
- customer: ContactCustomerEntity;
7
- items: ItemEntity[];
8
- }
@@ -1,9 +0,0 @@
1
- export declare enum SaleTransactionStatusEnum {
2
- OPEN = "OPEN",
3
- IN_PROGRESS = "IN_PROGRESS",
4
- COMPLETED = "COMPLETED",
5
- CANCELLED = "CANCELLED",
6
- RETURNED = "RETURNED"
7
- }
8
- export declare const SALE_PRE_FULFILLMENT_TRANSACTION_STATUSES: readonly SaleTransactionStatusEnum[];
9
- export declare const SALE_OPEN_TRANSACTION_STATUSES: readonly SaleTransactionStatusEnum[];
@@ -1,15 +0,0 @@
1
- export var SaleTransactionStatusEnum;
2
- (function (SaleTransactionStatusEnum) {
3
- SaleTransactionStatusEnum["OPEN"] = "OPEN";
4
- SaleTransactionStatusEnum["IN_PROGRESS"] = "IN_PROGRESS";
5
- SaleTransactionStatusEnum["COMPLETED"] = "COMPLETED";
6
- SaleTransactionStatusEnum["CANCELLED"] = "CANCELLED";
7
- SaleTransactionStatusEnum["RETURNED"] = "RETURNED";
8
- })(SaleTransactionStatusEnum || (SaleTransactionStatusEnum = {}));
9
- export const SALE_PRE_FULFILLMENT_TRANSACTION_STATUSES = [
10
- SaleTransactionStatusEnum.OPEN,
11
- ];
12
- export const SALE_OPEN_TRANSACTION_STATUSES = [
13
- ...SALE_PRE_FULFILLMENT_TRANSACTION_STATUSES,
14
- SaleTransactionStatusEnum.IN_PROGRESS,
15
- ];
@@ -1,8 +0,0 @@
1
- import { AbstractTransition } from '../../../abstract.transition.js';
2
- import { SaleTransactionStatusEnum as Status } from './transaction.enum.js';
3
-
4
- export declare class SaleTransactionTransition extends AbstractTransition<Status, unknown> {
5
- protected readonly $states: Readonly<Record<Status, readonly Status[]>>;
6
- constructor(status?: Status);
7
- readonly initialStates: readonly Status[];
8
- }
@@ -1,20 +0,0 @@
1
- import { AbstractTransition } from '../../../abstract.transition.js';
2
- import * as transaction_enum_1 from './transaction.enum.js';
3
-
4
- export class SaleTransactionTransition extends AbstractTransition {
5
- $states = {
6
- [transaction_enum_1.SaleTransactionStatusEnum.OPEN]: [],
7
- [transaction_enum_1.SaleTransactionStatusEnum.IN_PROGRESS]: [],
8
- [transaction_enum_1.SaleTransactionStatusEnum.COMPLETED]: [],
9
- [transaction_enum_1.SaleTransactionStatusEnum.CANCELLED]: [],
10
- [transaction_enum_1.SaleTransactionStatusEnum.RETURNED]: [],
11
- };
12
-
13
- constructor(status = transaction_enum_1.SaleTransactionStatusEnum.OPEN) {
14
- super(status);
15
- }
16
-
17
- get initialStates() {
18
- return [transaction_enum_1.SaleTransactionStatusEnum.OPEN];
19
- }
20
- }