@merkaly/api 0.5.14 → 0.6.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.
- package/dist/abstract.repository.d.ts +20 -30
- 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 +14 -0
- package/dist/account/address/{address.validator.js → request.validator.js} +22 -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 +17 -0
- package/dist/account/payment/{payment.validator.js → request.validator.js} +34 -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 +8 -0
- package/dist/account/user/{user.validator.js → request.validator.js} +7 -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 +19 -0
- package/dist/finance/invoice/{invoice.validator.js → request.validator.js} +26 -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 +1 -2
- 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 +12 -0
- package/dist/finance/payment/{payment.validator.js → request.validator.js} +13 -12
- package/dist/finance/refund/index.d.ts +1 -1
- package/dist/finance/refund/index.js +1 -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 +14 -0
- package/dist/finance/refund/{refund.validator.js → request.validator.js} +21 -14
- package/dist/finance/subscription/index.d.ts +0 -1
- package/dist/finance/subscription/index.js +0 -1
- package/dist/finance/tax/index.d.ts +0 -1
- package/dist/finance/tax/index.js +0 -1
- package/dist/inventory/catalog/attribute/index.d.ts +1 -1
- package/dist/inventory/catalog/attribute/index.js +1 -1
- package/dist/inventory/catalog/attribute/request.validator.d.ts +9 -0
- package/dist/inventory/catalog/attribute/{attribute.validator.js → request.validator.js} +12 -19
- package/dist/inventory/catalog/brand/brand.entity.d.ts +2 -0
- package/dist/inventory/catalog/brand/index.d.ts +1 -1
- package/dist/inventory/catalog/brand/index.js +1 -1
- package/dist/inventory/catalog/brand/request.validator.d.ts +8 -0
- package/dist/{settings/organization/organization.validator.js → inventory/catalog/brand/request.validator.js} +13 -12
- package/dist/inventory/catalog/category/category.entity.d.ts +2 -0
- package/dist/inventory/catalog/category/index.d.ts +1 -1
- package/dist/inventory/catalog/category/index.js +1 -1
- package/dist/inventory/catalog/category/request.validator.d.ts +8 -0
- package/dist/inventory/catalog/{brand/brand.validator.js → category/request.validator.js} +10 -16
- package/dist/inventory/catalog/collection/collection.entity.d.ts +2 -2
- package/dist/inventory/catalog/collection/index.d.ts +1 -1
- package/dist/inventory/catalog/collection/index.js +1 -1
- package/dist/inventory/catalog/collection/request.validator.d.ts +9 -0
- package/dist/inventory/catalog/collection/{collection.validator.js → request.validator.js} +11 -18
- package/dist/inventory/catalog/product/index.d.ts +1 -1
- package/dist/inventory/catalog/product/index.js +1 -1
- package/dist/inventory/catalog/product/product.entity.d.ts +14 -8
- package/dist/inventory/catalog/product/request.validator.d.ts +29 -0
- package/dist/inventory/catalog/product/{product.validator.js → request.validator.js} +46 -39
- package/dist/inventory/catalog/variant/index.d.ts +1 -1
- package/dist/inventory/catalog/variant/index.js +1 -1
- package/dist/inventory/catalog/variant/request.validator.d.ts +16 -0
- package/dist/inventory/catalog/variant/{variant.validator.js → request.validator.js} +22 -17
- package/dist/inventory/catalog/variant/variant.entity.d.ts +9 -6
- 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 +17 -0
- package/dist/inventory/configuration/measurement/{measurement.validator.js → request.validator.js} +35 -49
- package/dist/inventory/stock/balance/balance.entity.d.ts +8 -6
- package/dist/inventory/stock/balance/index.d.ts +0 -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 +20 -0
- package/dist/inventory/stock/transfer/{transfer.validator.js → request.validator.js} +32 -44
- 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 +10 -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 +12 -0
- package/dist/{finance/tax/tax.validator.js → inventory/stock/warehouse/request.validator.js} +25 -30
- 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 +16 -11
- package/dist/order/purchase/item/request.validator.d.ts +9 -0
- package/dist/order/{service/item/item.validator.js → purchase/item/request.validator.js} +14 -19
- 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 +20 -0
- package/dist/order/purchase/transaction/request.validator.js +75 -0
- package/dist/order/purchase/transaction/transaction.entity.d.ts +3 -4
- package/dist/order/purchase/transaction/transaction.enum.d.ts +4 -2
- package/dist/order/purchase/transaction/transaction.enum.js +9 -2
- package/dist/order/purchase/transaction/transaction.transition.d.ts +2 -0
- package/dist/order/purchase/transaction/transaction.transition.js +11 -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 +14 -0
- package/dist/order/purchase/vendor/{vendor.validator.js → request.validator.js} +16 -15
- 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 +16 -0
- package/dist/order/sale/customer/{customer.validator.js → request.validator.js} +17 -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 +16 -16
- package/dist/order/sale/item/request.validator.d.ts +9 -0
- package/dist/order/sale/item/{item.validator.js → request.validator.js} +7 -10
- 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 +20 -0
- package/dist/order/sale/transaction/request.validator.js +74 -0
- package/dist/order/sale/transaction/transaction.entity.d.ts +3 -6
- package/dist/order/sale/transaction/transaction.enum.d.ts +4 -2
- package/dist/order/sale/transaction/transaction.enum.js +9 -2
- package/dist/order/sale/transaction/transaction.transition.d.ts +2 -0
- package/dist/order/sale/transaction/transaction.transition.js +11 -3
- 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 +11 -4
- 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/subscription.validator.d.ts +0 -17
- package/dist/finance/subscription/subscription.validator.js +0 -69
- package/dist/finance/tax/tax.validator.d.ts +0 -15
- package/dist/inventory/catalog/attribute/attribute.validator.d.ts +0 -12
- package/dist/inventory/catalog/brand/brand.validator.d.ts +0 -11
- package/dist/inventory/catalog/category/category.validator.d.ts +0 -11
- package/dist/inventory/catalog/category/category.validator.js +0 -39
- package/dist/inventory/catalog/collection/collection.validator.d.ts +0 -12
- package/dist/inventory/catalog/product/product.validator.d.ts +0 -27
- package/dist/inventory/catalog/variant/variant.validator.d.ts +0 -18
- 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/warehouse/warehouse.validator.d.ts +0 -19
- package/dist/inventory/stock/warehouse/warehouse.validator.js +0 -85
- 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 -77
- package/dist/order/purchase/vendor/vendor.validator.d.ts +0 -16
- 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 -76
- 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 -75
- package/dist/settings/organization/organization.validator.d.ts +0 -10
|
@@ -1,11 +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 PurchaseTransactionTransition extends AbstractTransition {
|
|
5
5
|
$states = {
|
|
6
|
-
[transaction_enum_1.PurchaseTransactionStatusEnum.
|
|
7
|
-
[transaction_enum_1.PurchaseTransactionStatusEnum.
|
|
6
|
+
[transaction_enum_1.PurchaseTransactionStatusEnum.OPEN]: [transaction_enum_1.PurchaseTransactionStatusEnum.ORDERED, transaction_enum_1.PurchaseTransactionStatusEnum.RECEIVED, transaction_enum_1.PurchaseTransactionStatusEnum.CANCELLED],
|
|
7
|
+
[transaction_enum_1.PurchaseTransactionStatusEnum.ORDERED]: [transaction_enum_1.PurchaseTransactionStatusEnum.RECEIVED, transaction_enum_1.PurchaseTransactionStatusEnum.CANCELLED],
|
|
8
8
|
[transaction_enum_1.PurchaseTransactionStatusEnum.RECEIVED]: [],
|
|
9
9
|
[transaction_enum_1.PurchaseTransactionStatusEnum.CANCELLED]: [],
|
|
10
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, transaction_enum_1.PurchaseTransactionStatusEnum.ORDERED, transaction_enum_1.PurchaseTransactionStatusEnum.RECEIVED];
|
|
18
|
+
}
|
|
11
19
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './vendor.entity';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './request.validator';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './request.validator.js';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AbstractRequestValidator } from '../../..';
|
|
2
|
+
export declare class CreatePurchaseVendorRequestValidator extends AbstractRequestValidator {
|
|
3
|
+
name: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
email?: string;
|
|
6
|
+
logo?: string;
|
|
7
|
+
phone?: string;
|
|
8
|
+
website?: string;
|
|
9
|
+
taxId?: string;
|
|
10
|
+
active?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare class UpdatePurchaseVendorRequestValidator extends CreatePurchaseVendorRequestValidator {
|
|
13
|
+
name: string;
|
|
14
|
+
}
|
|
@@ -8,12 +8,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
10
|
import * as class_validator_1 from "class-validator";
|
|
11
|
-
import * as abstract_validator_1 from '
|
|
12
|
-
export class
|
|
13
|
-
}
|
|
14
|
-
export class ReadPurchaseVendorValidator extends abstract_validator_1.ReadValidator {
|
|
15
|
-
}
|
|
16
|
-
export class SavePurchaseVendorValidator extends abstract_validator_1.AbstractValidator {
|
|
11
|
+
import * as abstract_validator_1 from '../../../index.js';
|
|
12
|
+
export class CreatePurchaseVendorRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
17
13
|
name;
|
|
18
14
|
description;
|
|
19
15
|
email;
|
|
@@ -27,47 +23,52 @@ __decorate([
|
|
|
27
23
|
(0, class_validator_1.IsString)(),
|
|
28
24
|
(0, class_validator_1.IsNotEmpty)(),
|
|
29
25
|
(0, class_validator_1.Length)(0, 100),
|
|
30
|
-
(0, class_validator_1.IsOptional)({ groups: ['update'] }),
|
|
31
26
|
__metadata("design:type", String)
|
|
32
|
-
],
|
|
27
|
+
], CreatePurchaseVendorRequestValidator.prototype, "name", void 0);
|
|
33
28
|
__decorate([
|
|
34
29
|
(0, class_validator_1.IsString)(),
|
|
35
30
|
(0, class_validator_1.Length)(0, 1000),
|
|
36
31
|
(0, class_validator_1.IsOptional)(),
|
|
37
32
|
__metadata("design:type", String)
|
|
38
|
-
],
|
|
33
|
+
], CreatePurchaseVendorRequestValidator.prototype, "description", void 0);
|
|
39
34
|
__decorate([
|
|
40
35
|
(0, class_validator_1.IsEmail)(),
|
|
41
36
|
(0, class_validator_1.Length)(0, 254),
|
|
42
37
|
(0, class_validator_1.IsOptional)(),
|
|
43
38
|
__metadata("design:type", String)
|
|
44
|
-
],
|
|
39
|
+
], CreatePurchaseVendorRequestValidator.prototype, "email", void 0);
|
|
45
40
|
__decorate([
|
|
46
41
|
(0, class_validator_1.IsUrl)(),
|
|
47
42
|
(0, class_validator_1.Length)(0, 2048),
|
|
48
43
|
(0, class_validator_1.IsOptional)(),
|
|
49
44
|
__metadata("design:type", String)
|
|
50
|
-
],
|
|
45
|
+
], CreatePurchaseVendorRequestValidator.prototype, "logo", void 0);
|
|
51
46
|
__decorate([
|
|
52
47
|
(0, class_validator_1.IsString)(),
|
|
53
48
|
(0, class_validator_1.Length)(0, 20),
|
|
54
49
|
(0, class_validator_1.IsOptional)(),
|
|
55
50
|
__metadata("design:type", String)
|
|
56
|
-
],
|
|
51
|
+
], CreatePurchaseVendorRequestValidator.prototype, "phone", void 0);
|
|
57
52
|
__decorate([
|
|
58
53
|
(0, class_validator_1.IsString)(),
|
|
59
54
|
(0, class_validator_1.Length)(0, 2048),
|
|
60
55
|
(0, class_validator_1.IsOptional)(),
|
|
61
56
|
__metadata("design:type", String)
|
|
62
|
-
],
|
|
57
|
+
], CreatePurchaseVendorRequestValidator.prototype, "website", void 0);
|
|
63
58
|
__decorate([
|
|
64
59
|
(0, class_validator_1.IsString)(),
|
|
65
60
|
(0, class_validator_1.Length)(0, 20),
|
|
66
61
|
(0, class_validator_1.IsOptional)(),
|
|
67
62
|
__metadata("design:type", String)
|
|
68
|
-
],
|
|
63
|
+
], CreatePurchaseVendorRequestValidator.prototype, "taxId", void 0);
|
|
69
64
|
__decorate([
|
|
70
65
|
(0, class_validator_1.IsBoolean)(),
|
|
71
66
|
(0, class_validator_1.IsOptional)(),
|
|
72
67
|
__metadata("design:type", Boolean)
|
|
73
|
-
],
|
|
68
|
+
], CreatePurchaseVendorRequestValidator.prototype, "active", void 0);
|
|
69
|
+
export class UpdatePurchaseVendorRequestValidator extends CreatePurchaseVendorRequestValidator {
|
|
70
|
+
}
|
|
71
|
+
__decorate([
|
|
72
|
+
(0, class_validator_1.IsOptional)(),
|
|
73
|
+
__metadata("design:type", String)
|
|
74
|
+
], UpdatePurchaseVendorRequestValidator.prototype, "name", void 0);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './customer.enum.js';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './request.validator.js';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SaleCustomerTypeEnum } from './';
|
|
2
|
+
import { AbstractRequestValidator } from '../../..';
|
|
3
|
+
export declare class CreateSaleCustomerRequestValidator extends AbstractRequestValidator {
|
|
4
|
+
name: string;
|
|
5
|
+
type: SaleCustomerTypeEnum;
|
|
6
|
+
description?: string;
|
|
7
|
+
email?: string;
|
|
8
|
+
logo?: string;
|
|
9
|
+
phone?: string;
|
|
10
|
+
website?: string;
|
|
11
|
+
taxId?: string;
|
|
12
|
+
active?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare class UpdateSaleCustomerRequestValidator extends CreateSaleCustomerRequestValidator {
|
|
15
|
+
name: string;
|
|
16
|
+
}
|
|
@@ -9,26 +9,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
};
|
|
10
10
|
import * as class_validator_1 from "class-validator";
|
|
11
11
|
import * as customer_enum_1 from './customer.enum.js';
|
|
12
|
-
import * as abstract_validator_1 from '
|
|
13
|
-
export class
|
|
14
|
-
}
|
|
15
|
-
export class ReadSaleCustomerValidator extends abstract_validator_1.ReadValidator {
|
|
16
|
-
}
|
|
17
|
-
export class SaveSaleCustomerValidator extends abstract_validator_1.AbstractValidator {
|
|
18
|
-
constructor(entity) {
|
|
19
|
-
super();
|
|
20
|
-
if (!entity)
|
|
21
|
-
return;
|
|
22
|
-
this.name = entity.name;
|
|
23
|
-
this.type = entity.type;
|
|
24
|
-
this.description = entity.description;
|
|
25
|
-
this.email = entity.email;
|
|
26
|
-
this.phone = entity.phone;
|
|
27
|
-
this.website = entity.website;
|
|
28
|
-
this.logo = entity.logo;
|
|
29
|
-
this.taxId = entity.taxId;
|
|
30
|
-
this.active = entity.active;
|
|
31
|
-
}
|
|
12
|
+
import * as abstract_validator_1 from '../../../index.js';
|
|
13
|
+
export class CreateSaleCustomerRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
32
14
|
name;
|
|
33
15
|
type = customer_enum_1.SaleCustomerTypeEnum.B2C;
|
|
34
16
|
description;
|
|
@@ -43,54 +25,59 @@ __decorate([
|
|
|
43
25
|
(0, class_validator_1.IsString)(),
|
|
44
26
|
(0, class_validator_1.IsNotEmpty)(),
|
|
45
27
|
(0, class_validator_1.Length)(0, 100),
|
|
46
|
-
(0, class_validator_1.IsOptional)({ groups: ['update'] }),
|
|
47
28
|
__metadata("design:type", String)
|
|
48
|
-
],
|
|
29
|
+
], CreateSaleCustomerRequestValidator.prototype, "name", void 0);
|
|
49
30
|
__decorate([
|
|
50
31
|
(0, class_validator_1.IsEnum)(customer_enum_1.SaleCustomerTypeEnum),
|
|
51
32
|
(0, class_validator_1.IsOptional)(),
|
|
52
33
|
__metadata("design:type", String)
|
|
53
|
-
],
|
|
34
|
+
], CreateSaleCustomerRequestValidator.prototype, "type", void 0);
|
|
54
35
|
__decorate([
|
|
55
36
|
(0, class_validator_1.IsString)(),
|
|
56
37
|
(0, class_validator_1.Length)(0, 1000),
|
|
57
38
|
(0, class_validator_1.IsOptional)(),
|
|
58
39
|
__metadata("design:type", String)
|
|
59
|
-
],
|
|
40
|
+
], CreateSaleCustomerRequestValidator.prototype, "description", void 0);
|
|
60
41
|
__decorate([
|
|
61
42
|
(0, class_validator_1.IsEmail)(),
|
|
62
43
|
(0, class_validator_1.Length)(0, 254),
|
|
63
44
|
(0, class_validator_1.IsOptional)(),
|
|
64
45
|
(0, class_validator_1.ValidateIf)((o) => o.email),
|
|
65
46
|
__metadata("design:type", String)
|
|
66
|
-
],
|
|
47
|
+
], CreateSaleCustomerRequestValidator.prototype, "email", void 0);
|
|
67
48
|
__decorate([
|
|
68
49
|
(0, class_validator_1.IsUrl)(),
|
|
69
50
|
(0, class_validator_1.Length)(0, 2048),
|
|
70
51
|
(0, class_validator_1.IsOptional)(),
|
|
71
52
|
(0, class_validator_1.ValidateIf)((o) => o.logo),
|
|
72
53
|
__metadata("design:type", String)
|
|
73
|
-
],
|
|
54
|
+
], CreateSaleCustomerRequestValidator.prototype, "logo", void 0);
|
|
74
55
|
__decorate([
|
|
75
56
|
(0, class_validator_1.IsString)(),
|
|
76
57
|
(0, class_validator_1.Length)(0, 20),
|
|
77
58
|
(0, class_validator_1.IsOptional)(),
|
|
78
59
|
__metadata("design:type", String)
|
|
79
|
-
],
|
|
60
|
+
], CreateSaleCustomerRequestValidator.prototype, "phone", void 0);
|
|
80
61
|
__decorate([
|
|
81
62
|
(0, class_validator_1.IsString)(),
|
|
82
63
|
(0, class_validator_1.Length)(0, 2048),
|
|
83
64
|
(0, class_validator_1.IsOptional)(),
|
|
84
65
|
__metadata("design:type", String)
|
|
85
|
-
],
|
|
66
|
+
], CreateSaleCustomerRequestValidator.prototype, "website", void 0);
|
|
86
67
|
__decorate([
|
|
87
68
|
(0, class_validator_1.IsString)(),
|
|
88
69
|
(0, class_validator_1.Length)(0, 20),
|
|
89
70
|
(0, class_validator_1.IsOptional)(),
|
|
90
71
|
__metadata("design:type", String)
|
|
91
|
-
],
|
|
72
|
+
], CreateSaleCustomerRequestValidator.prototype, "taxId", void 0);
|
|
92
73
|
__decorate([
|
|
93
74
|
(0, class_validator_1.IsBoolean)(),
|
|
94
75
|
(0, class_validator_1.IsOptional)(),
|
|
95
76
|
__metadata("design:type", Boolean)
|
|
96
|
-
],
|
|
77
|
+
], CreateSaleCustomerRequestValidator.prototype, "active", void 0);
|
|
78
|
+
export class UpdateSaleCustomerRequestValidator extends CreateSaleCustomerRequestValidator {
|
|
79
|
+
}
|
|
80
|
+
__decorate([
|
|
81
|
+
(0, class_validator_1.IsOptional)(),
|
|
82
|
+
__metadata("design:type", String)
|
|
83
|
+
], UpdateSaleCustomerRequestValidator.prototype, "name", void 0);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './item.entity';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './request.validator';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './request.validator.js';
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { CatalogAttributeEntity } from '../../../inventory/catalog/attribute';
|
|
2
1
|
import { CatalogProductEntity } from '../../../inventory/catalog/product';
|
|
2
|
+
import { CatalogVariantEntity } from '../../../inventory/catalog/variant';
|
|
3
3
|
import { StockWarehouseEntity } from '../../../inventory/stock/warehouse';
|
|
4
4
|
import { AbstractEntity } from '../../..';
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
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;
|
|
5
|
+
import { StockBalanceEntity } from '../../../inventory/stock/balance';
|
|
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 balance?: StockBalanceEntity;
|
|
21
20
|
readonly isProcessable: boolean;
|
|
22
21
|
}
|
|
22
|
+
export {};
|
|
@@ -8,8 +8,8 @@ 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
|
-
|
|
12
|
-
|
|
11
|
+
import * as abstract_validator_1 from '../../../index.js';
|
|
12
|
+
export class SaleItemRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
13
13
|
variant;
|
|
14
14
|
warehouse;
|
|
15
15
|
quantity = 1;
|
|
@@ -22,23 +22,20 @@ export class SaleItemValidator {
|
|
|
22
22
|
__decorate([
|
|
23
23
|
(0, class_validator_1.IsMongoId)(),
|
|
24
24
|
__metadata("design:type", String)
|
|
25
|
-
],
|
|
26
|
-
__decorate([
|
|
27
|
-
(0, class_validator_1.IsMongoId)(),
|
|
28
|
-
__metadata("design:type", String)
|
|
29
|
-
], SaleItemValidator.prototype, "variant", void 0);
|
|
25
|
+
], SaleItemRequestValidator.prototype, "variant", void 0);
|
|
30
26
|
__decorate([
|
|
31
27
|
(0, class_validator_1.IsMongoId)(),
|
|
28
|
+
(0, class_validator_1.IsOptional)(),
|
|
32
29
|
__metadata("design:type", String)
|
|
33
|
-
],
|
|
30
|
+
], SaleItemRequestValidator.prototype, "warehouse", void 0);
|
|
34
31
|
__decorate([
|
|
35
32
|
(0, class_validator_1.IsPositive)(),
|
|
36
33
|
(0, class_validator_1.IsInt)(),
|
|
37
34
|
__metadata("design:type", Object)
|
|
38
|
-
],
|
|
35
|
+
], SaleItemRequestValidator.prototype, "quantity", void 0);
|
|
39
36
|
__decorate([
|
|
40
37
|
(0, class_validator_1.IsString)(),
|
|
41
38
|
(0, class_validator_1.Length)(0, 500),
|
|
42
39
|
(0, class_validator_1.IsOptional)(),
|
|
43
40
|
__metadata("design:type", String)
|
|
44
|
-
],
|
|
41
|
+
], SaleItemRequestValidator.prototype, "notes", void 0);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { FinancePaymentStatusEnum } from '../../../finance/payment';
|
|
2
|
+
import { SaleTransactionStatusEnum } from './';
|
|
3
|
+
import { AbstractRequestValidator } from '../../..';
|
|
4
|
+
import { SaleItemRequestValidator } from '../item';
|
|
5
|
+
export declare class CreateSaleTransactionRequestValidator extends AbstractRequestValidator {
|
|
6
|
+
items: SaleItemRequestValidator[];
|
|
7
|
+
notes?: string;
|
|
8
|
+
customer?: string;
|
|
9
|
+
warehouse?: string;
|
|
10
|
+
payment: FinancePaymentStatusEnum;
|
|
11
|
+
status?: SaleTransactionStatusEnum;
|
|
12
|
+
get total(): {
|
|
13
|
+
units: number;
|
|
14
|
+
price: number;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export declare class UpdateSaleTransactionRequestValidator extends CreateSaleTransactionRequestValidator {
|
|
18
|
+
items: SaleItemRequestValidator[];
|
|
19
|
+
status: SaleTransactionStatusEnum;
|
|
20
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
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
|
+
notes;
|
|
19
|
+
customer;
|
|
20
|
+
warehouse;
|
|
21
|
+
payment = payment_enum_1.FinancePaymentStatusEnum.PENDING;
|
|
22
|
+
status = transaction_enum_1.SaleTransactionStatusEnum.OPEN;
|
|
23
|
+
get total() {
|
|
24
|
+
return this.items.reduce((acc, item) => {
|
|
25
|
+
acc.units += item.quantity;
|
|
26
|
+
acc.price += item.quantity * item.price;
|
|
27
|
+
return acc;
|
|
28
|
+
}, { units: 0, price: 0 });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, class_validator_1.IsArray)(),
|
|
33
|
+
(0, class_transformer_1.Type)(() => request_validator_1.SaleItemRequestValidator),
|
|
34
|
+
(0, class_validator_1.ValidateNested)({ each: true }),
|
|
35
|
+
__metadata("design:type", Array)
|
|
36
|
+
], CreateSaleTransactionRequestValidator.prototype, "items", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, class_validator_1.IsString)(),
|
|
39
|
+
(0, class_validator_1.Length)(0, 500),
|
|
40
|
+
(0, class_validator_1.IsOptional)(),
|
|
41
|
+
__metadata("design:type", String)
|
|
42
|
+
], CreateSaleTransactionRequestValidator.prototype, "notes", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, class_validator_1.IsMongoId)(),
|
|
45
|
+
(0, class_validator_1.IsOptional)(),
|
|
46
|
+
__metadata("design:type", String)
|
|
47
|
+
], CreateSaleTransactionRequestValidator.prototype, "customer", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
(0, class_validator_1.IsMongoId)(),
|
|
50
|
+
(0, class_validator_1.IsOptional)(),
|
|
51
|
+
__metadata("design:type", String)
|
|
52
|
+
], CreateSaleTransactionRequestValidator.prototype, "warehouse", void 0);
|
|
53
|
+
__decorate([
|
|
54
|
+
(0, class_validator_1.IsEnum)(payment_enum_1.FinancePaymentStatusEnum),
|
|
55
|
+
(0, class_validator_1.IsDefined)(),
|
|
56
|
+
(0, class_validator_1.IsOptional)(),
|
|
57
|
+
__metadata("design:type", String)
|
|
58
|
+
], CreateSaleTransactionRequestValidator.prototype, "payment", void 0);
|
|
59
|
+
__decorate([
|
|
60
|
+
(0, class_validator_1.IsEnum)(transaction_enum_1.SaleTransactionStatusEnum),
|
|
61
|
+
(0, class_validator_1.IsDefined)(),
|
|
62
|
+
(0, class_validator_1.IsOptional)(),
|
|
63
|
+
__metadata("design:type", Object)
|
|
64
|
+
], CreateSaleTransactionRequestValidator.prototype, "status", void 0);
|
|
65
|
+
export class UpdateSaleTransactionRequestValidator extends CreateSaleTransactionRequestValidator {
|
|
66
|
+
}
|
|
67
|
+
__decorate([
|
|
68
|
+
(0, class_validator_1.IsOptional)(),
|
|
69
|
+
__metadata("design:type", Array)
|
|
70
|
+
], UpdateSaleTransactionRequestValidator.prototype, "items", void 0);
|
|
71
|
+
__decorate([
|
|
72
|
+
(0, class_validator_1.IsOptional)(),
|
|
73
|
+
__metadata("design:type", String)
|
|
74
|
+
], UpdateSaleTransactionRequestValidator.prototype, "status", 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,6 +1,8 @@
|
|
|
1
1
|
export declare enum SaleTransactionStatusEnum {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
OPEN = "OPEN",
|
|
3
|
+
IN_PROGRESS = "IN_PROGRESS",
|
|
4
4
|
COMPLETED = "COMPLETED",
|
|
5
5
|
CANCELLED = "CANCELLED"
|
|
6
6
|
}
|
|
7
|
+
export declare const SALE_PRE_FULFILLMENT_TRANSACTION_STATUSES: readonly SaleTransactionStatusEnum[];
|
|
8
|
+
export declare const SALE_OPEN_TRANSACTION_STATUSES: readonly SaleTransactionStatusEnum[];
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
export var SaleTransactionStatusEnum;
|
|
2
2
|
(function (SaleTransactionStatusEnum) {
|
|
3
|
-
SaleTransactionStatusEnum["
|
|
4
|
-
SaleTransactionStatusEnum["
|
|
3
|
+
SaleTransactionStatusEnum["OPEN"] = "OPEN";
|
|
4
|
+
SaleTransactionStatusEnum["IN_PROGRESS"] = "IN_PROGRESS";
|
|
5
5
|
SaleTransactionStatusEnum["COMPLETED"] = "COMPLETED";
|
|
6
6
|
SaleTransactionStatusEnum["CANCELLED"] = "CANCELLED";
|
|
7
7
|
})(SaleTransactionStatusEnum || (SaleTransactionStatusEnum = {}));
|
|
8
|
+
export const SALE_PRE_FULFILLMENT_TRANSACTION_STATUSES = [
|
|
9
|
+
SaleTransactionStatusEnum.OPEN,
|
|
10
|
+
];
|
|
11
|
+
export const SALE_OPEN_TRANSACTION_STATUSES = [
|
|
12
|
+
...SALE_PRE_FULFILLMENT_TRANSACTION_STATUSES,
|
|
13
|
+
SaleTransactionStatusEnum.IN_PROGRESS,
|
|
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,11 +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.
|
|
7
|
-
[transaction_enum_1.SaleTransactionStatusEnum.
|
|
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],
|
|
8
8
|
[transaction_enum_1.SaleTransactionStatusEnum.COMPLETED]: [],
|
|
9
9
|
[transaction_enum_1.SaleTransactionStatusEnum.CANCELLED]: [],
|
|
10
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
|
+
}
|
|
11
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,20 @@
|
|
|
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
|
+
import { ItemEntity } from './order/sale/item';
|
|
5
6
|
export declare class TransactionEntity<S extends string = string> extends AbstractEntity {
|
|
6
|
-
user:
|
|
7
|
+
user: AccountUserEntity;
|
|
7
8
|
notes?: string;
|
|
8
9
|
status: S;
|
|
10
|
+
items: ItemEntity[];
|
|
11
|
+
readonly warehouses: Record<string, ItemEntity[]>;
|
|
9
12
|
readonly number: string;
|
|
10
|
-
readonly
|
|
11
|
-
|
|
13
|
+
readonly pricing: {
|
|
14
|
+
subtotal: number;
|
|
15
|
+
total: number;
|
|
16
|
+
units: number;
|
|
17
|
+
};
|
|
18
|
+
readonly payment: FinancePaymentEntity;
|
|
12
19
|
readonly history: StatusEntity<S>[];
|
|
13
20
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@merkaly/api",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
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
|
-
}
|