@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.
- package/dist/abstract.repository.d.ts +21 -31
- package/dist/abstract.validator.d.ts +10 -17
- package/dist/abstract.validator.js +54 -64
- package/dist/account/address/index.d.ts +1 -1
- package/dist/account/address/index.js +1 -1
- package/dist/account/address/request.validator.d.ts +16 -0
- package/dist/account/address/{address.validator.js → request.validator.js} +35 -18
- package/dist/account/payment/index.d.ts +1 -1
- package/dist/account/payment/index.js +1 -1
- package/dist/account/payment/request.validator.d.ts +19 -0
- package/dist/account/payment/{payment.validator.js → request.validator.js} +46 -18
- package/dist/account/user/index.d.ts +1 -1
- package/dist/account/user/index.js +1 -1
- package/dist/account/user/request.validator.d.ts +10 -0
- package/dist/account/user/{user.validator.js → request.validator.js} +18 -23
- package/dist/address.validator.d.ts +2 -2
- package/dist/finance/invoice/index.d.ts +1 -1
- package/dist/finance/invoice/index.js +1 -1
- package/dist/finance/invoice/request.validator.d.ts +21 -0
- package/dist/finance/invoice/{invoice.validator.js → request.validator.js} +41 -19
- package/dist/finance/payment/index.d.ts +1 -1
- package/dist/finance/payment/index.js +1 -1
- package/dist/finance/payment/payment.entity.d.ts +6 -6
- package/dist/finance/payment/payment.transition.d.ts +5 -3
- package/dist/finance/payment/payment.transition.js +10 -5
- package/dist/finance/payment/request.validator.d.ts +14 -0
- package/dist/finance/payment/{payment.validator.js → request.validator.js} +24 -12
- package/dist/finance/refund/index.d.ts +1 -1
- package/dist/finance/refund/index.js +1 -1
- package/dist/finance/refund/refund.entity.d.ts +2 -1
- package/dist/finance/refund/refund.transition.d.ts +5 -3
- package/dist/finance/refund/refund.transition.js +8 -14
- package/dist/finance/refund/request.validator.d.ts +16 -0
- package/dist/finance/refund/{refund.validator.js → request.validator.js} +32 -14
- package/dist/inventory/catalog/attribute/request.validator.d.ts +7 -4
- package/dist/inventory/catalog/attribute/request.validator.js +23 -15
- package/dist/inventory/catalog/brand/request.validator.d.ts +8 -5
- package/dist/inventory/catalog/brand/request.validator.js +17 -11
- package/dist/inventory/catalog/category/category.entity.d.ts +3 -1
- package/dist/inventory/catalog/category/request.validator.d.ts +8 -5
- package/dist/inventory/catalog/category/request.validator.js +17 -11
- package/dist/inventory/catalog/collection/request.validator.d.ts +9 -6
- package/dist/inventory/catalog/collection/request.validator.js +21 -14
- package/dist/inventory/catalog/product/product.entity.d.ts +12 -4
- package/dist/inventory/catalog/product/request.validator.d.ts +24 -11
- package/dist/inventory/catalog/product/request.validator.js +74 -44
- package/dist/inventory/catalog/variant/request.validator.d.ts +9 -7
- package/dist/inventory/catalog/variant/request.validator.js +33 -27
- package/dist/inventory/catalog/variant/variant.entity.d.ts +6 -4
- package/dist/inventory/configuration/measurement/index.d.ts +1 -1
- package/dist/inventory/configuration/measurement/index.js +1 -1
- package/dist/inventory/configuration/measurement/request.validator.d.ts +21 -0
- package/dist/inventory/configuration/measurement/{measurement.validator.js → request.validator.js} +57 -49
- package/dist/inventory/stock/balance/balance.entity.d.ts +9 -5
- package/dist/inventory/stock/balance/balance.status.enum.d.ts +6 -0
- package/dist/inventory/stock/balance/balance.status.enum.js +7 -0
- package/dist/inventory/stock/balance/index.d.ts +1 -1
- package/dist/inventory/stock/balance/index.js +1 -1
- package/dist/inventory/stock/transfer/index.d.ts +3 -2
- package/dist/inventory/stock/transfer/index.js +2 -2
- package/dist/inventory/stock/transfer/request.validator.d.ts +24 -0
- package/dist/inventory/stock/transfer/request.validator.js +111 -0
- package/dist/inventory/stock/transfer/transfer.entity.d.ts +9 -16
- package/dist/inventory/stock/transfer/{transfer.status.enum.d.ts → transfer.enum.d.ts} +5 -1
- package/dist/inventory/stock/transfer/{transfer.status.enum.js → transfer.enum.js} +6 -1
- package/dist/inventory/stock/transfer/transfer.item.entity.d.ts +12 -0
- package/dist/inventory/stock/transfer/transfer.transition.d.ts +3 -1
- package/dist/inventory/stock/transfer/transfer.transition.js +13 -6
- package/dist/inventory/stock/warehouse/index.d.ts +1 -1
- package/dist/inventory/stock/warehouse/index.js +1 -1
- package/dist/inventory/stock/warehouse/request.validator.d.ts +14 -0
- package/dist/inventory/stock/warehouse/{warehouse.validator.js → request.validator.js} +40 -44
- package/dist/inventory/stock/warehouse/warehouse.entity.d.ts +2 -2
- package/dist/order/purchase/item/index.d.ts +1 -1
- package/dist/order/purchase/item/index.js +1 -1
- package/dist/order/purchase/item/item.entity.d.ts +18 -11
- package/dist/order/purchase/item/request.validator.d.ts +12 -0
- package/dist/order/{service/item/item.validator.js → purchase/item/request.validator.js} +32 -15
- package/dist/order/purchase/transaction/index.d.ts +1 -1
- package/dist/order/purchase/transaction/index.js +1 -1
- package/dist/order/purchase/transaction/request.validator.d.ts +23 -0
- package/dist/order/purchase/transaction/request.validator.js +97 -0
- package/dist/order/purchase/transaction/transaction.entity.d.ts +3 -4
- package/dist/order/purchase/transaction/transaction.enum.d.ts +0 -1
- package/dist/order/purchase/transaction/transaction.enum.js +0 -3
- package/dist/order/purchase/transaction/transaction.transition.d.ts +2 -0
- package/dist/order/purchase/transaction/transaction.transition.js +10 -3
- package/dist/order/purchase/vendor/index.d.ts +1 -1
- package/dist/order/purchase/vendor/index.js +1 -1
- package/dist/order/purchase/vendor/request.validator.d.ts +16 -0
- package/dist/order/purchase/vendor/{vendor.validator.js → request.validator.js} +30 -28
- package/dist/order/sale/customer/index.d.ts +1 -1
- package/dist/order/sale/customer/index.js +1 -1
- package/dist/order/sale/customer/request.validator.d.ts +18 -0
- package/dist/order/sale/customer/{customer.validator.js → request.validator.js} +34 -30
- package/dist/order/sale/item/index.d.ts +1 -1
- package/dist/order/sale/item/index.js +1 -1
- package/dist/order/sale/item/item.entity.d.ts +18 -16
- package/dist/order/sale/item/request.validator.d.ts +12 -0
- package/dist/order/sale/item/{item.validator.js → request.validator.js} +23 -6
- package/dist/order/sale/transaction/index.d.ts +1 -1
- package/dist/order/sale/transaction/index.js +1 -1
- package/dist/order/sale/transaction/request.validator.d.ts +25 -0
- package/dist/order/sale/transaction/request.validator.js +104 -0
- package/dist/order/sale/transaction/transaction.entity.d.ts +3 -6
- package/dist/order/sale/transaction/transaction.enum.d.ts +0 -3
- package/dist/order/sale/transaction/transaction.enum.js +0 -9
- package/dist/order/sale/transaction/transaction.transition.d.ts +2 -0
- package/dist/order/sale/transaction/transaction.transition.js +11 -5
- package/dist/repository.types.d.ts +2 -2
- package/dist/settings/organization/index.d.ts +0 -1
- package/dist/settings/organization/index.js +0 -1
- package/dist/transaction.entity.d.ts +14 -5
- package/package.json +5 -6
- package/dist/account/address/address.validator.d.ts +0 -15
- package/dist/account/payment/payment.validator.d.ts +0 -14
- package/dist/account/user/user.validator.d.ts +0 -15
- package/dist/finance/invoice/invoice.validator.d.ts +0 -19
- package/dist/finance/payment/payment.validator.d.ts +0 -14
- package/dist/finance/refund/refund.validator.d.ts +0 -14
- package/dist/finance/subscription/index.d.ts +0 -3
- package/dist/finance/subscription/index.js +0 -2
- package/dist/finance/subscription/subscription.entity.d.ts +0 -14
- package/dist/finance/subscription/subscription.enum.d.ts +0 -15
- package/dist/finance/subscription/subscription.enum.js +0 -17
- package/dist/finance/subscription/subscription.validator.d.ts +0 -17
- package/dist/finance/subscription/subscription.validator.js +0 -69
- package/dist/finance/tax/index.d.ts +0 -3
- package/dist/finance/tax/index.js +0 -2
- package/dist/finance/tax/tax.entity.d.ts +0 -10
- package/dist/finance/tax/tax.enum.d.ts +0 -8
- package/dist/finance/tax/tax.enum.js +0 -9
- package/dist/finance/tax/tax.validator.d.ts +0 -15
- package/dist/finance/tax/tax.validator.js +0 -60
- package/dist/inventory/configuration/measurement/measurement.validator.d.ts +0 -20
- package/dist/inventory/stock/balance/balance.validator.d.ts +0 -13
- package/dist/inventory/stock/balance/balance.validator.js +0 -46
- package/dist/inventory/stock/transfer/transfer.validator.d.ts +0 -21
- package/dist/inventory/stock/transfer/transfer.validator.js +0 -101
- package/dist/inventory/stock/warehouse/warehouse.validator.d.ts +0 -19
- package/dist/order/purchase/item/item.validator.d.ts +0 -10
- package/dist/order/purchase/item/item.validator.js +0 -50
- package/dist/order/purchase/transaction/transaction.validator.d.ts +0 -18
- package/dist/order/purchase/transaction/transaction.validator.js +0 -78
- package/dist/order/purchase/vendor/vendor.validator.d.ts +0 -17
- package/dist/order/sale/customer/customer.validator.d.ts +0 -19
- package/dist/order/sale/item/item.validator.d.ts +0 -9
- package/dist/order/sale/payment/index.d.ts +0 -1
- package/dist/order/sale/payment/index.js +0 -1
- package/dist/order/sale/payment/payment.validator.d.ts +0 -7
- package/dist/order/sale/payment/payment.validator.js +0 -31
- package/dist/order/sale/transaction/transaction.validator.d.ts +0 -18
- package/dist/order/sale/transaction/transaction.validator.js +0 -77
- package/dist/order/service/item/index.d.ts +0 -2
- package/dist/order/service/item/index.js +0 -1
- package/dist/order/service/item/item.entity.d.ts +0 -14
- package/dist/order/service/item/item.validator.d.ts +0 -9
- package/dist/order/service/transaction/index.d.ts +0 -4
- package/dist/order/service/transaction/index.js +0 -3
- package/dist/order/service/transaction/transaction.entity.d.ts +0 -9
- package/dist/order/service/transaction/transaction.enum.d.ts +0 -8
- package/dist/order/service/transaction/transaction.enum.js +0 -9
- package/dist/order/service/transaction/transaction.transition.d.ts +0 -6
- package/dist/order/service/transaction/transaction.transition.js +0 -13
- package/dist/order/service/transaction/transaction.validator.d.ts +0 -17
- package/dist/order/service/transaction/transaction.validator.js +0 -76
- package/dist/settings/organization/organization.validator.d.ts +0 -10
- package/dist/settings/organization/organization.validator.js +0 -32
|
@@ -1,22 +1,24 @@
|
|
|
1
|
-
import { CatalogAttributeEntity } from '../../../inventory/catalog/attribute';
|
|
2
1
|
import { CatalogProductEntity } from '../../../inventory/catalog/product';
|
|
2
|
+
import { CatalogVariantEntity } from '../../../inventory/catalog/variant';
|
|
3
|
+
import { StockBalanceEntity } from '../../../inventory/stock/balance';
|
|
3
4
|
import { StockWarehouseEntity } from '../../../inventory/stock/warehouse';
|
|
4
5
|
import { AbstractEntity } from '../../..';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export declare class SaleItemEntity extends AbstractEntity {
|
|
8
|
-
product: MongoEntity<CatalogProductEntity>;
|
|
9
|
-
variant: MongoEntity<CatalogVariantEntity>;
|
|
10
|
-
warehouse: MongoEntity<StockWarehouseEntity>;
|
|
11
|
-
priceProduct: number;
|
|
12
|
-
priceVariant: number;
|
|
13
|
-
quantity: number;
|
|
14
|
-
notes?: string;
|
|
15
|
-
options: {
|
|
16
|
-
type: MongoEntity<CatalogAttributeEntity>;
|
|
17
|
-
value: string;
|
|
18
|
-
}[];
|
|
19
|
-
readonly price: number;
|
|
6
|
+
interface ItemPricing {
|
|
7
|
+
product: number;
|
|
20
8
|
readonly total: number;
|
|
9
|
+
readonly unit: number;
|
|
10
|
+
variant: number;
|
|
11
|
+
}
|
|
12
|
+
export declare class ItemEntity extends AbstractEntity {
|
|
13
|
+
product?: CatalogProductEntity;
|
|
14
|
+
variant: CatalogVariantEntity;
|
|
15
|
+
warehouse: StockWarehouseEntity;
|
|
16
|
+
quantity: number;
|
|
17
|
+
notes: string;
|
|
18
|
+
price: ItemPricing;
|
|
19
|
+
readonly 'price.unit': number;
|
|
20
|
+
readonly 'price.total': number;
|
|
21
|
+
readonly balance?: StockBalanceEntity;
|
|
21
22
|
readonly isProcessable: boolean;
|
|
22
23
|
}
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AbstractRequestValidator } from '../../..';
|
|
2
|
+
import type { ItemEntity } from './';
|
|
3
|
+
export declare class SaleItemRequestValidator extends AbstractRequestValidator {
|
|
4
|
+
product: string;
|
|
5
|
+
variant: string;
|
|
6
|
+
warehouse?: string;
|
|
7
|
+
quantity: number;
|
|
8
|
+
notes?: string;
|
|
9
|
+
price: number;
|
|
10
|
+
constructor(item?: ItemEntity);
|
|
11
|
+
get total(): number;
|
|
12
|
+
}
|
|
@@ -8,37 +8,54 @@ 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
|
-
|
|
11
|
+
import * as abstract_validator_1 from '../../../index.js';
|
|
12
|
+
export class SaleItemRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
12
13
|
product;
|
|
13
14
|
variant;
|
|
14
15
|
warehouse;
|
|
15
16
|
quantity = 1;
|
|
16
17
|
notes;
|
|
17
18
|
price = 0;
|
|
19
|
+
constructor(item) {
|
|
20
|
+
super();
|
|
21
|
+
if (!item) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
this.product = (item.product?._id || item.product);
|
|
25
|
+
this.variant = (item.variant?._id || item.variant);
|
|
26
|
+
this.warehouse = (item.warehouse?._id || item.warehouse);
|
|
27
|
+
if (item.quantity !== undefined) {
|
|
28
|
+
this.quantity = item.quantity;
|
|
29
|
+
}
|
|
30
|
+
this.notes = item.notes;
|
|
31
|
+
this.price = item.price?.unit || item.get?.('price.unit') || this.price;
|
|
32
|
+
}
|
|
18
33
|
get total() {
|
|
19
34
|
return Math.trunc(this.quantity * this.price) || 0;
|
|
20
35
|
}
|
|
21
36
|
}
|
|
22
37
|
__decorate([
|
|
23
38
|
(0, class_validator_1.IsMongoId)(),
|
|
39
|
+
(0, class_validator_1.IsOptional)(),
|
|
24
40
|
__metadata("design:type", String)
|
|
25
|
-
],
|
|
41
|
+
], SaleItemRequestValidator.prototype, "product", void 0);
|
|
26
42
|
__decorate([
|
|
27
43
|
(0, class_validator_1.IsMongoId)(),
|
|
28
44
|
__metadata("design:type", String)
|
|
29
|
-
],
|
|
45
|
+
], SaleItemRequestValidator.prototype, "variant", void 0);
|
|
30
46
|
__decorate([
|
|
31
47
|
(0, class_validator_1.IsMongoId)(),
|
|
48
|
+
(0, class_validator_1.IsOptional)(),
|
|
32
49
|
__metadata("design:type", String)
|
|
33
|
-
],
|
|
50
|
+
], SaleItemRequestValidator.prototype, "warehouse", void 0);
|
|
34
51
|
__decorate([
|
|
35
52
|
(0, class_validator_1.IsPositive)(),
|
|
36
53
|
(0, class_validator_1.IsInt)(),
|
|
37
54
|
__metadata("design:type", Object)
|
|
38
|
-
],
|
|
55
|
+
], SaleItemRequestValidator.prototype, "quantity", void 0);
|
|
39
56
|
__decorate([
|
|
40
57
|
(0, class_validator_1.IsString)(),
|
|
41
58
|
(0, class_validator_1.Length)(0, 500),
|
|
42
59
|
(0, class_validator_1.IsOptional)(),
|
|
43
60
|
__metadata("design:type", String)
|
|
44
|
-
],
|
|
61
|
+
], SaleItemRequestValidator.prototype, "notes", void 0);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { FinancePaymentStatusEnum, FinancePaymentMethodEnum } from '../../../finance/payment';
|
|
2
|
+
import { SaleTransactionStatusEnum } from './';
|
|
3
|
+
import { AbstractRequestValidator } from '../../..';
|
|
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
|
+
warehouse?: string;
|
|
12
|
+
payment: FinancePaymentStatusEnum;
|
|
13
|
+
status?: SaleTransactionStatusEnum;
|
|
14
|
+
constructor(order?: SaleTransactionEntity);
|
|
15
|
+
get total(): {
|
|
16
|
+
units: number;
|
|
17
|
+
price: number;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export declare class UpdateSaleTransactionRequestValidator extends CreateSaleTransactionRequestValidator {
|
|
21
|
+
items: SaleItemRequestValidator[];
|
|
22
|
+
payment: any;
|
|
23
|
+
method: FinancePaymentMethodEnum;
|
|
24
|
+
status: any;
|
|
25
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import * as class_transformer_1 from "class-transformer";
|
|
11
|
+
import * as class_validator_1 from "class-validator";
|
|
12
|
+
import * as payment_enum_1 from '../../../finance/payment/index.js';
|
|
13
|
+
import * as transaction_enum_1 from './transaction.enum.js';
|
|
14
|
+
import * as abstract_validator_1 from '../../../index.js';
|
|
15
|
+
import * as request_validator_1 from '../item/index.js';
|
|
16
|
+
export class CreateSaleTransactionRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
17
|
+
items = [];
|
|
18
|
+
method;
|
|
19
|
+
notes;
|
|
20
|
+
customer;
|
|
21
|
+
warehouse;
|
|
22
|
+
payment = payment_enum_1.FinancePaymentStatusEnum.PENDING;
|
|
23
|
+
status = transaction_enum_1.SaleTransactionStatusEnum.OPEN;
|
|
24
|
+
constructor(order) {
|
|
25
|
+
super();
|
|
26
|
+
if (!order) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this.notes = order.notes;
|
|
30
|
+
this.method = order.payment?.method;
|
|
31
|
+
this.customer = (order.customer?._id || order.customer);
|
|
32
|
+
if (order.status !== undefined) {
|
|
33
|
+
this.status = order.status;
|
|
34
|
+
}
|
|
35
|
+
if (order.payment?.status !== undefined) {
|
|
36
|
+
this.payment = order.payment.status;
|
|
37
|
+
}
|
|
38
|
+
const [warehouse] = [...new Set(order.items?.map((item) => item.warehouse).filter(Boolean))];
|
|
39
|
+
this.warehouse = (warehouse?._id || warehouse);
|
|
40
|
+
this.items = order.items?.map((it) => new request_validator_1.SaleItemRequestValidator(it)) ?? this.items;
|
|
41
|
+
}
|
|
42
|
+
get total() {
|
|
43
|
+
return this.items.reduce((acc, item) => {
|
|
44
|
+
acc.units += item.quantity;
|
|
45
|
+
acc.price += item.quantity * item.price;
|
|
46
|
+
return acc;
|
|
47
|
+
}, { units: 0, price: 0 });
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, class_validator_1.IsArray)(),
|
|
52
|
+
(0, class_transformer_1.Type)(() => request_validator_1.SaleItemRequestValidator),
|
|
53
|
+
(0, class_validator_1.ValidateNested)({ each: true }),
|
|
54
|
+
__metadata("design:type", Array)
|
|
55
|
+
], CreateSaleTransactionRequestValidator.prototype, "items", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
(0, class_validator_1.IsEnum)(payment_enum_1.FinancePaymentMethodEnum),
|
|
58
|
+
__metadata("design:type", String)
|
|
59
|
+
], CreateSaleTransactionRequestValidator.prototype, "method", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
(0, class_validator_1.IsString)(),
|
|
62
|
+
(0, class_validator_1.Length)(0, 500),
|
|
63
|
+
(0, class_validator_1.IsOptional)(),
|
|
64
|
+
__metadata("design:type", String)
|
|
65
|
+
], CreateSaleTransactionRequestValidator.prototype, "notes", void 0);
|
|
66
|
+
__decorate([
|
|
67
|
+
(0, class_validator_1.IsMongoId)(),
|
|
68
|
+
(0, class_validator_1.IsOptional)(),
|
|
69
|
+
__metadata("design:type", String)
|
|
70
|
+
], CreateSaleTransactionRequestValidator.prototype, "customer", void 0);
|
|
71
|
+
__decorate([
|
|
72
|
+
(0, class_validator_1.IsMongoId)(),
|
|
73
|
+
(0, class_validator_1.IsOptional)(),
|
|
74
|
+
__metadata("design:type", String)
|
|
75
|
+
], CreateSaleTransactionRequestValidator.prototype, "warehouse", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
(0, class_validator_1.IsEnum)(payment_enum_1.FinancePaymentStatusEnum),
|
|
78
|
+
(0, class_validator_1.IsDefined)(),
|
|
79
|
+
(0, class_validator_1.IsOptional)(),
|
|
80
|
+
__metadata("design:type", String)
|
|
81
|
+
], CreateSaleTransactionRequestValidator.prototype, "payment", void 0);
|
|
82
|
+
__decorate([
|
|
83
|
+
(0, class_validator_1.IsEnum)(transaction_enum_1.SaleTransactionStatusEnum),
|
|
84
|
+
(0, class_validator_1.IsDefined)(),
|
|
85
|
+
(0, class_validator_1.IsOptional)(),
|
|
86
|
+
__metadata("design:type", Object)
|
|
87
|
+
], CreateSaleTransactionRequestValidator.prototype, "status", void 0);
|
|
88
|
+
export class UpdateSaleTransactionRequestValidator extends CreateSaleTransactionRequestValidator {
|
|
89
|
+
payment = undefined;
|
|
90
|
+
status = undefined;
|
|
91
|
+
}
|
|
92
|
+
__decorate([
|
|
93
|
+
(0, class_validator_1.IsOptional)(),
|
|
94
|
+
__metadata("design:type", Array)
|
|
95
|
+
], UpdateSaleTransactionRequestValidator.prototype, "items", void 0);
|
|
96
|
+
__decorate([
|
|
97
|
+
(0, class_validator_1.ValidateIf)(() => false),
|
|
98
|
+
(0, class_transformer_1.Transform)(() => undefined),
|
|
99
|
+
__metadata("design:type", Object)
|
|
100
|
+
], UpdateSaleTransactionRequestValidator.prototype, "payment", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
(0, class_validator_1.IsOptional)(),
|
|
103
|
+
__metadata("design:type", String)
|
|
104
|
+
], UpdateSaleTransactionRequestValidator.prototype, "method", void 0);
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
+
import { ItemEntity } from '../item';
|
|
1
2
|
import { TransactionEntity } from '../../..';
|
|
2
3
|
import { SaleTransactionStatusEnum } from './transaction.enum.js';
|
|
3
4
|
import { SaleCustomerEntity } from '../customer';
|
|
4
|
-
import { SaleItemEntity } from '../item';
|
|
5
|
-
import type { MongoEntity } from '../../..';
|
|
6
5
|
export declare class SaleTransactionEntity extends TransactionEntity<SaleTransactionStatusEnum> {
|
|
7
|
-
customer:
|
|
8
|
-
items:
|
|
9
|
-
readonly subtotal: number;
|
|
10
|
-
readonly isProcessable: boolean;
|
|
6
|
+
customer: SaleCustomerEntity;
|
|
7
|
+
items: ItemEntity[];
|
|
11
8
|
}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
export declare enum SaleTransactionStatusEnum {
|
|
2
2
|
OPEN = "OPEN",
|
|
3
|
-
READY = "READY",
|
|
4
3
|
IN_PROGRESS = "IN_PROGRESS",
|
|
5
|
-
PAUSED = "PAUSED",
|
|
6
4
|
COMPLETED = "COMPLETED",
|
|
7
5
|
CANCELLED = "CANCELLED"
|
|
8
6
|
}
|
|
9
7
|
export declare const SALE_PRE_FULFILLMENT_TRANSACTION_STATUSES: readonly SaleTransactionStatusEnum[];
|
|
10
8
|
export declare const SALE_OPEN_TRANSACTION_STATUSES: readonly SaleTransactionStatusEnum[];
|
|
11
|
-
export declare const SALE_STOCK_CONSUMED_TRANSACTION_STATUSES: readonly SaleTransactionStatusEnum[];
|
|
@@ -1,23 +1,14 @@
|
|
|
1
1
|
export var SaleTransactionStatusEnum;
|
|
2
2
|
(function (SaleTransactionStatusEnum) {
|
|
3
3
|
SaleTransactionStatusEnum["OPEN"] = "OPEN";
|
|
4
|
-
SaleTransactionStatusEnum["READY"] = "READY";
|
|
5
4
|
SaleTransactionStatusEnum["IN_PROGRESS"] = "IN_PROGRESS";
|
|
6
|
-
SaleTransactionStatusEnum["PAUSED"] = "PAUSED";
|
|
7
5
|
SaleTransactionStatusEnum["COMPLETED"] = "COMPLETED";
|
|
8
6
|
SaleTransactionStatusEnum["CANCELLED"] = "CANCELLED";
|
|
9
7
|
})(SaleTransactionStatusEnum || (SaleTransactionStatusEnum = {}));
|
|
10
8
|
export const SALE_PRE_FULFILLMENT_TRANSACTION_STATUSES = [
|
|
11
9
|
SaleTransactionStatusEnum.OPEN,
|
|
12
|
-
SaleTransactionStatusEnum.READY,
|
|
13
10
|
];
|
|
14
11
|
export const SALE_OPEN_TRANSACTION_STATUSES = [
|
|
15
12
|
...SALE_PRE_FULFILLMENT_TRANSACTION_STATUSES,
|
|
16
13
|
SaleTransactionStatusEnum.IN_PROGRESS,
|
|
17
|
-
SaleTransactionStatusEnum.PAUSED,
|
|
18
|
-
];
|
|
19
|
-
export const SALE_STOCK_CONSUMED_TRANSACTION_STATUSES = [
|
|
20
|
-
SaleTransactionStatusEnum.IN_PROGRESS,
|
|
21
|
-
SaleTransactionStatusEnum.PAUSED,
|
|
22
|
-
SaleTransactionStatusEnum.COMPLETED,
|
|
23
14
|
];
|
|
@@ -3,4 +3,6 @@ import { SaleTransactionStatusEnum as Status } from './transaction.enum.js';
|
|
|
3
3
|
|
|
4
4
|
export declare class SaleTransactionTransition extends AbstractTransition<Status, unknown> {
|
|
5
5
|
protected readonly $states: Readonly<Record<Status, readonly Status[]>>;
|
|
6
|
+
constructor(status?: Status);
|
|
7
|
+
readonly initialStates: readonly Status[];
|
|
6
8
|
}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
import { AbstractTransition } from '../../../
|
|
1
|
+
import { AbstractTransition } from '../../../index.js';
|
|
2
2
|
import * as transaction_enum_1 from './transaction.enum.js';
|
|
3
3
|
|
|
4
4
|
export class SaleTransactionTransition extends AbstractTransition {
|
|
5
5
|
$states = {
|
|
6
|
-
[transaction_enum_1.SaleTransactionStatusEnum.OPEN]: [transaction_enum_1.SaleTransactionStatusEnum.
|
|
7
|
-
[transaction_enum_1.SaleTransactionStatusEnum.
|
|
8
|
-
[transaction_enum_1.SaleTransactionStatusEnum.IN_PROGRESS]: [transaction_enum_1.SaleTransactionStatusEnum.PAUSED, transaction_enum_1.SaleTransactionStatusEnum.COMPLETED, transaction_enum_1.SaleTransactionStatusEnum.CANCELLED],
|
|
9
|
-
[transaction_enum_1.SaleTransactionStatusEnum.PAUSED]: [transaction_enum_1.SaleTransactionStatusEnum.IN_PROGRESS, transaction_enum_1.SaleTransactionStatusEnum.CANCELLED],
|
|
6
|
+
[transaction_enum_1.SaleTransactionStatusEnum.OPEN]: [transaction_enum_1.SaleTransactionStatusEnum.IN_PROGRESS, transaction_enum_1.SaleTransactionStatusEnum.COMPLETED, transaction_enum_1.SaleTransactionStatusEnum.CANCELLED],
|
|
7
|
+
[transaction_enum_1.SaleTransactionStatusEnum.IN_PROGRESS]: [transaction_enum_1.SaleTransactionStatusEnum.COMPLETED, transaction_enum_1.SaleTransactionStatusEnum.CANCELLED],
|
|
10
8
|
[transaction_enum_1.SaleTransactionStatusEnum.COMPLETED]: [],
|
|
11
9
|
[transaction_enum_1.SaleTransactionStatusEnum.CANCELLED]: [],
|
|
12
10
|
};
|
|
11
|
+
|
|
12
|
+
constructor(status = transaction_enum_1.SaleTransactionStatusEnum.OPEN) {
|
|
13
|
+
super(status);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
get initialStates() {
|
|
17
|
+
return [transaction_enum_1.SaleTransactionStatusEnum.OPEN, transaction_enum_1.SaleTransactionStatusEnum.IN_PROGRESS, transaction_enum_1.SaleTransactionStatusEnum.COMPLETED];
|
|
18
|
+
}
|
|
13
19
|
}
|
|
@@ -4,10 +4,10 @@ import type { Document } from 'mongoose';
|
|
|
4
4
|
type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : false;
|
|
5
5
|
type SystemKeys = '_id' | 'createdAt' | 'updatedAt' | 'deletedAt' | keyof Document;
|
|
6
6
|
|
|
7
|
-
export type
|
|
7
|
+
export type SaveEntityArgs<T> = {
|
|
8
8
|
[K in keyof T as K extends SystemKeys ? never : T[K] extends Function ? never : Equal<{
|
|
9
9
|
[Q in K]: T[K];
|
|
10
10
|
}, {
|
|
11
11
|
-readonly [Q in K]: T[K];
|
|
12
|
-
}> extends true ? K : never]: T[K] extends AbstractEntity ?
|
|
12
|
+
}> extends true ? K : never]: T[K] extends AbstractEntity ? SaveEntityArgs<T[K]> : T[K];
|
|
13
13
|
};
|
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import { AccountUserEntity } from './account/user';
|
|
2
2
|
import { FinancePaymentEntity } from './finance/payment';
|
|
3
|
-
import { AbstractEntity
|
|
3
|
+
import { AbstractEntity } from './';
|
|
4
4
|
import { StatusEntity } from './status.plugin.js';
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
import { ITransitionable } from './transitionable.interface.js';
|
|
6
|
+
import { ItemEntity } from './order/sale/item';
|
|
7
|
+
export declare class TransactionEntity<S extends string> extends AbstractEntity implements ITransitionable<S> {
|
|
8
|
+
user: AccountUserEntity;
|
|
7
9
|
notes?: string;
|
|
8
10
|
status: S;
|
|
11
|
+
items: ItemEntity[];
|
|
12
|
+
readonly warehouses: Record<string, ItemEntity[]>;
|
|
9
13
|
readonly number: string;
|
|
10
|
-
readonly
|
|
11
|
-
|
|
14
|
+
readonly pricing: {
|
|
15
|
+
subtotal: number;
|
|
16
|
+
total: number;
|
|
17
|
+
units: number;
|
|
18
|
+
};
|
|
19
|
+
readonly payment: FinancePaymentEntity;
|
|
20
|
+
readonly isProcessable: boolean;
|
|
12
21
|
readonly history: StatusEntity<S>[];
|
|
13
22
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@merkaly/api",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Shared TypeScript interfaces and enums for Merkaly API",
|
|
6
6
|
"exports": {
|
|
@@ -17,10 +17,6 @@
|
|
|
17
17
|
"files": [
|
|
18
18
|
"dist"
|
|
19
19
|
],
|
|
20
|
-
"scripts": {
|
|
21
|
-
"build": "tsx build.ts",
|
|
22
|
-
"prepack": "pnpm build"
|
|
23
|
-
},
|
|
24
20
|
"dependencies": {
|
|
25
21
|
"class-transformer": "^0.5.1",
|
|
26
22
|
"class-validator": "^0.14.2",
|
|
@@ -31,5 +27,8 @@
|
|
|
31
27
|
},
|
|
32
28
|
"publishConfig": {
|
|
33
29
|
"access": "public"
|
|
30
|
+
},
|
|
31
|
+
"scripts": {
|
|
32
|
+
"build": "tsx build.ts"
|
|
34
33
|
}
|
|
35
|
-
}
|
|
34
|
+
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { AccountAddressEntity } from './';
|
|
2
|
-
import { AbstractValidator, ReadValidator, SearchValidator } from '../..';
|
|
3
|
-
export declare class SearchAddressValidator extends SearchValidator<AccountAddressEntity> {
|
|
4
|
-
}
|
|
5
|
-
export declare class ReadAddressValidator extends ReadValidator<AccountAddressEntity> {
|
|
6
|
-
}
|
|
7
|
-
export declare class SaveAddressValidator extends AbstractValidator {
|
|
8
|
-
street: string;
|
|
9
|
-
name: string;
|
|
10
|
-
complement: string;
|
|
11
|
-
country: string;
|
|
12
|
-
code: string;
|
|
13
|
-
longitude: number;
|
|
14
|
-
latitude: number;
|
|
15
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { AccountPaymentEntity } from './';
|
|
2
|
-
import { AbstractValidator, ReadValidator, SearchValidator } from '../..';
|
|
3
|
-
export declare class SearchPaymentValidator extends SearchValidator<AccountPaymentEntity> {
|
|
4
|
-
}
|
|
5
|
-
export declare class ReadPaymentValidator extends ReadValidator<AccountPaymentEntity> {
|
|
6
|
-
}
|
|
7
|
-
export declare class SavePaymentValidator extends AbstractValidator {
|
|
8
|
-
holder: string;
|
|
9
|
-
hash: string;
|
|
10
|
-
last4: string;
|
|
11
|
-
brand: string;
|
|
12
|
-
expMonth: number;
|
|
13
|
-
expYear: number;
|
|
14
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { AccountUserEntity } from './';
|
|
2
|
-
import { AbstractValidator, ReadValidator, SearchValidator } from '../..';
|
|
3
|
-
export declare class SearchUserValidator extends SearchValidator<AccountUserEntity> {
|
|
4
|
-
}
|
|
5
|
-
export declare class ReadUserValidator extends ReadValidator<AccountUserEntity> {
|
|
6
|
-
}
|
|
7
|
-
export declare class SaveUserValidator extends AbstractValidator {
|
|
8
|
-
name: string;
|
|
9
|
-
picture: string;
|
|
10
|
-
email: string;
|
|
11
|
-
phone?: string;
|
|
12
|
-
_id: string;
|
|
13
|
-
identities: any[];
|
|
14
|
-
active: boolean;
|
|
15
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { FinanceInvoiceEntity } from './';
|
|
2
|
-
import { FinanceInvoiceStatusEnum, FinanceInvoiceTypeEnum } from './';
|
|
3
|
-
import { AbstractValidator, ReadValidator, SearchValidator } from '../..';
|
|
4
|
-
export declare class SearchFinanceInvoiceValidator extends SearchValidator<FinanceInvoiceEntity> {
|
|
5
|
-
}
|
|
6
|
-
export declare class ReadFinanceInvoiceValidator extends ReadValidator<FinanceInvoiceEntity> {
|
|
7
|
-
}
|
|
8
|
-
export declare class SaveFinanceInvoiceValidator extends AbstractValidator {
|
|
9
|
-
order: string;
|
|
10
|
-
orderModel: string;
|
|
11
|
-
customer?: string;
|
|
12
|
-
type: FinanceInvoiceTypeEnum;
|
|
13
|
-
total?: number;
|
|
14
|
-
subtotal?: number;
|
|
15
|
-
tax?: number;
|
|
16
|
-
dueDate?: Date;
|
|
17
|
-
notes?: string;
|
|
18
|
-
status?: FinanceInvoiceStatusEnum;
|
|
19
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { FinancePaymentEntity } from './';
|
|
2
|
-
import { FinancePaymentMethodEnum, FinancePaymentStatusEnum, FinancePaymentTypeEnum } from './';
|
|
3
|
-
import { AbstractValidator, ReadValidator, SearchValidator } from '../..';
|
|
4
|
-
export declare class SearchFinancePaymentValidator extends SearchValidator<FinancePaymentEntity> {
|
|
5
|
-
}
|
|
6
|
-
export declare class ReadFinancePaymentValidator extends ReadValidator<FinancePaymentEntity> {
|
|
7
|
-
}
|
|
8
|
-
export declare class SaveFinancePaymentValidator extends AbstractValidator {
|
|
9
|
-
type: FinancePaymentTypeEnum;
|
|
10
|
-
order?: string;
|
|
11
|
-
method?: FinancePaymentMethodEnum;
|
|
12
|
-
total?: number;
|
|
13
|
-
status?: FinancePaymentStatusEnum;
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { FinanceRefundEntity } from './';
|
|
2
|
-
import { FinanceRefundReasonEnum, FinanceRefundStatusEnum } from './';
|
|
3
|
-
import { AbstractValidator, ReadValidator, SearchValidator } from '../..';
|
|
4
|
-
export declare class SearchFinanceRefundValidator extends SearchValidator<FinanceRefundEntity> {
|
|
5
|
-
}
|
|
6
|
-
export declare class ReadFinanceRefundValidator extends ReadValidator<FinanceRefundEntity> {
|
|
7
|
-
}
|
|
8
|
-
export declare class SaveFinanceRefundValidator extends AbstractValidator {
|
|
9
|
-
payment: string;
|
|
10
|
-
reason: FinanceRefundReasonEnum;
|
|
11
|
-
amount: number;
|
|
12
|
-
notes?: string;
|
|
13
|
-
status?: FinanceRefundStatusEnum;
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { AbstractEntity } from '../..';
|
|
2
|
-
import { FinanceSubscriptionIntervalEnum, FinanceSubscriptionStatusEnum } from './subscription.enum.js';
|
|
3
|
-
export declare class FinanceSubscriptionEntity extends AbstractEntity {
|
|
4
|
-
name: string;
|
|
5
|
-
description?: string;
|
|
6
|
-
price: number;
|
|
7
|
-
status: FinanceSubscriptionStatusEnum;
|
|
8
|
-
interval: FinanceSubscriptionIntervalEnum;
|
|
9
|
-
intervalCount: number;
|
|
10
|
-
currentPeriodStart?: Date;
|
|
11
|
-
currentPeriodEnd?: Date;
|
|
12
|
-
cancelledAt?: Date;
|
|
13
|
-
readonly number: string;
|
|
14
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export declare enum FinanceSubscriptionStatusEnum {
|
|
2
|
-
ACTIVE = "ACTIVE",
|
|
3
|
-
TRIALING = "TRIALING",
|
|
4
|
-
PAST_DUE = "PAST_DUE",
|
|
5
|
-
PAUSED = "PAUSED",
|
|
6
|
-
CANCELLED = "CANCELLED",
|
|
7
|
-
EXPIRED = "EXPIRED"
|
|
8
|
-
}
|
|
9
|
-
export declare enum FinanceSubscriptionIntervalEnum {
|
|
10
|
-
DAILY = "DAILY",
|
|
11
|
-
WEEKLY = "WEEKLY",
|
|
12
|
-
MONTHLY = "MONTHLY",
|
|
13
|
-
QUARTERLY = "QUARTERLY",
|
|
14
|
-
YEARLY = "YEARLY"
|
|
15
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export var FinanceSubscriptionStatusEnum;
|
|
2
|
-
(function (FinanceSubscriptionStatusEnum) {
|
|
3
|
-
FinanceSubscriptionStatusEnum["ACTIVE"] = "ACTIVE";
|
|
4
|
-
FinanceSubscriptionStatusEnum["TRIALING"] = "TRIALING";
|
|
5
|
-
FinanceSubscriptionStatusEnum["PAST_DUE"] = "PAST_DUE";
|
|
6
|
-
FinanceSubscriptionStatusEnum["PAUSED"] = "PAUSED";
|
|
7
|
-
FinanceSubscriptionStatusEnum["CANCELLED"] = "CANCELLED";
|
|
8
|
-
FinanceSubscriptionStatusEnum["EXPIRED"] = "EXPIRED";
|
|
9
|
-
})(FinanceSubscriptionStatusEnum || (FinanceSubscriptionStatusEnum = {}));
|
|
10
|
-
export var FinanceSubscriptionIntervalEnum;
|
|
11
|
-
(function (FinanceSubscriptionIntervalEnum) {
|
|
12
|
-
FinanceSubscriptionIntervalEnum["DAILY"] = "DAILY";
|
|
13
|
-
FinanceSubscriptionIntervalEnum["WEEKLY"] = "WEEKLY";
|
|
14
|
-
FinanceSubscriptionIntervalEnum["MONTHLY"] = "MONTHLY";
|
|
15
|
-
FinanceSubscriptionIntervalEnum["QUARTERLY"] = "QUARTERLY";
|
|
16
|
-
FinanceSubscriptionIntervalEnum["YEARLY"] = "YEARLY";
|
|
17
|
-
})(FinanceSubscriptionIntervalEnum || (FinanceSubscriptionIntervalEnum = {}));
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { FinanceSubscriptionEntity } from './';
|
|
2
|
-
import { FinanceSubscriptionIntervalEnum, FinanceSubscriptionStatusEnum } from './';
|
|
3
|
-
import { AbstractValidator, ReadValidator, SearchValidator } from '../..';
|
|
4
|
-
export declare class SearchFinanceSubscriptionValidator extends SearchValidator<FinanceSubscriptionEntity> {
|
|
5
|
-
}
|
|
6
|
-
export declare class ReadFinanceSubscriptionValidator extends ReadValidator<FinanceSubscriptionEntity> {
|
|
7
|
-
}
|
|
8
|
-
export declare class SaveFinanceSubscriptionValidator extends AbstractValidator {
|
|
9
|
-
name: string;
|
|
10
|
-
description?: string;
|
|
11
|
-
price: number;
|
|
12
|
-
interval: FinanceSubscriptionIntervalEnum;
|
|
13
|
-
intervalCount?: number;
|
|
14
|
-
currentPeriodStart?: Date;
|
|
15
|
-
currentPeriodEnd?: Date;
|
|
16
|
-
status?: FinanceSubscriptionStatusEnum;
|
|
17
|
-
}
|