@merkaly/api 0.5.3 → 0.5.4
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 +31 -14
- package/dist/abstract.transition.d.ts +9 -0
- package/dist/abstract.transition.js +24 -0
- package/dist/finance/payment/index.d.ts +1 -0
- package/dist/finance/payment/index.js +1 -0
- package/dist/finance/payment/payment.entity.d.ts +2 -6
- package/dist/finance/payment/payment.enum.d.ts +2 -6
- package/dist/finance/payment/payment.enum.js +1 -5
- package/dist/finance/payment/payment.transition.d.ts +6 -0
- package/dist/finance/payment/payment.transition.js +14 -0
- package/dist/finance/payment/payment.validator.d.ts +2 -3
- package/dist/finance/payment/payment.validator.js +2 -9
- package/dist/finance/refund/index.d.ts +1 -0
- package/dist/finance/refund/index.js +1 -0
- package/dist/finance/refund/refund.transition.d.ts +6 -0
- package/dist/finance/refund/refund.transition.js +23 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/inventory/catalog/product/index.d.ts +0 -1
- package/dist/inventory/catalog/product/index.js +0 -1
- package/dist/inventory/catalog/product/product.entity.d.ts +0 -2
- package/dist/inventory/catalog/product/product.validator.d.ts +0 -2
- package/dist/inventory/catalog/product/product.validator.js +0 -9
- package/dist/inventory/stock/transfer/index.d.ts +1 -0
- package/dist/inventory/stock/transfer/index.js +1 -0
- package/dist/inventory/stock/transfer/transfer.status.enum.d.ts +0 -1
- package/dist/inventory/stock/transfer/transfer.status.enum.js +0 -1
- package/dist/inventory/stock/transfer/transfer.transition.d.ts +6 -0
- package/dist/inventory/stock/transfer/transfer.transition.js +11 -0
- package/dist/order/purchase/transaction/index.d.ts +1 -0
- package/dist/order/purchase/transaction/index.js +1 -0
- package/dist/order/purchase/transaction/transaction.enum.d.ts +0 -1
- package/dist/order/purchase/transaction/transaction.enum.js +0 -1
- package/dist/order/purchase/transaction/transaction.transition.d.ts +6 -0
- package/dist/order/purchase/transaction/transaction.transition.js +11 -0
- package/dist/order/purchase/transaction/transaction.validator.js +2 -0
- package/dist/order/sale/item/item.validator.js +1 -1
- package/dist/order/sale/transaction/index.d.ts +1 -0
- package/dist/order/sale/transaction/index.js +1 -0
- package/dist/order/sale/transaction/transaction.enum.d.ts +0 -1
- package/dist/order/sale/transaction/transaction.enum.js +0 -1
- package/dist/order/sale/transaction/transaction.transition.d.ts +6 -0
- package/dist/order/sale/transaction/transaction.transition.js +11 -0
- package/dist/order/sale/transaction/transaction.validator.d.ts +0 -1
- package/dist/order/sale/transaction/transaction.validator.js +2 -7
- package/package.json +8 -91
- package/dist/inventory/catalog/product/product.status.enum.d.ts +0 -8
- package/dist/inventory/catalog/product/product.status.enum.js +0 -9
|
@@ -3,8 +3,8 @@ import { LoggerService } from './';
|
|
|
3
3
|
import { MongoService } from './mongo.service.js';
|
|
4
4
|
import { AbstractEntity } from './abstract.entity.js';
|
|
5
5
|
import { AbstractSchema } from './abstract.schema.js';
|
|
6
|
-
import { AbstractValidator,
|
|
7
|
-
import type { ClientSession, Document, FilterQuery, Model, RootFilterQuery, UpdateQuery } from 'mongoose';
|
|
6
|
+
import { AbstractValidator, SearchValidator } from './abstract.validator.js';
|
|
7
|
+
import type { ClientSession, Document, FilterQuery, Model, PopulateOptions, RootFilterQuery, UpdateQuery } from 'mongoose';
|
|
8
8
|
type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : false;
|
|
9
9
|
type SystemKeys = '_id' | 'createdAt' | 'updatedAt' | 'deletedAt' | keyof Document;
|
|
10
10
|
export type CreateEntityArgs<T> = {
|
|
@@ -14,14 +14,31 @@ export type CreateEntityArgs<T> = {
|
|
|
14
14
|
-readonly [Q in K]: T[K];
|
|
15
15
|
}> extends true ? K : never]: T[K] extends AbstractEntity ? CreateEntityArgs<T[K]> : T[K];
|
|
16
16
|
};
|
|
17
|
-
export
|
|
18
|
-
|
|
17
|
+
export type EntityLocator<E extends AbstractEntity = AbstractEntity> = string | RootFilterQuery<E>;
|
|
18
|
+
export type JoinOptions = string[] | PopulateOptions[];
|
|
19
|
+
export interface ReadMethodOptions {
|
|
20
|
+
join?: JoinOptions;
|
|
19
21
|
session?: ClientSession;
|
|
20
22
|
}
|
|
21
|
-
export interface
|
|
22
|
-
|
|
23
|
+
export interface CreateMethodOptions<P extends AbstractValidator = AbstractValidator> {
|
|
24
|
+
join?: JoinOptions;
|
|
25
|
+
payload: P;
|
|
26
|
+
session?: ClientSession;
|
|
27
|
+
}
|
|
28
|
+
export interface UpdateMethodOptions<P extends AbstractValidator = AbstractValidator> {
|
|
29
|
+
join?: JoinOptions;
|
|
30
|
+
payload: P;
|
|
31
|
+
session?: ClientSession;
|
|
32
|
+
}
|
|
33
|
+
export interface DeleteMethodOptions {
|
|
34
|
+
join?: JoinOptions;
|
|
35
|
+
session?: ClientSession;
|
|
36
|
+
}
|
|
37
|
+
export interface SaveMethodOptions<E extends AbstractEntity> {
|
|
38
|
+
join?: JoinOptions;
|
|
39
|
+
param?: EntityLocator<E>;
|
|
23
40
|
payload: UpdateQuery<E>;
|
|
24
|
-
|
|
41
|
+
session?: ClientSession;
|
|
25
42
|
}
|
|
26
43
|
export declare abstract class AbstractRepository<E extends AbstractEntity = AbstractEntity> {
|
|
27
44
|
protected abstract readonly $schema: AbstractSchema<E>;
|
|
@@ -35,8 +52,8 @@ export declare abstract class AbstractRepository<E extends AbstractEntity = Abst
|
|
|
35
52
|
private sanitizePaths;
|
|
36
53
|
private removeNonDeclaredSchemas;
|
|
37
54
|
private applyPopulate;
|
|
38
|
-
count(filters?: FilterQuery<E
|
|
39
|
-
search(validator?: SearchValidator<E
|
|
55
|
+
count(filters?: FilterQuery<E>, session?: ClientSession): Promise<number>;
|
|
56
|
+
search(validator?: SearchValidator<E>, session?: ClientSession): Promise<{
|
|
40
57
|
data: import("mongoose").IfAny<E, any, Document<unknown, {}, E, {}, {}> & (import("mongoose").Require_id<E> extends infer T ? T extends import("mongoose").Require_id<E> ? T extends {
|
|
41
58
|
__v?: infer U;
|
|
42
59
|
} ? T : T & {
|
|
@@ -46,15 +63,15 @@ export declare abstract class AbstractRepository<E extends AbstractEntity = Abst
|
|
|
46
63
|
pages: number;
|
|
47
64
|
total: number;
|
|
48
65
|
}>;
|
|
49
|
-
read(
|
|
66
|
+
read(locator: EntityLocator<E>, options?: ReadMethodOptions): Promise<E>;
|
|
50
67
|
private hasUpdateOperators;
|
|
51
|
-
protected save({ param, payload,
|
|
68
|
+
protected save({ param, payload, join, session }: SaveMethodOptions<E>): Promise<import("mongoose").IfAny<E, any, Document<unknown, {}, E, {}, {}> & (import("mongoose").Require_id<E> extends infer T ? T extends import("mongoose").Require_id<E> ? T extends {
|
|
52
69
|
__v?: infer U;
|
|
53
70
|
} ? T : T & {
|
|
54
71
|
__v: number;
|
|
55
72
|
} : never : never)>>;
|
|
56
|
-
abstract create(
|
|
57
|
-
abstract update(
|
|
58
|
-
delete(
|
|
73
|
+
abstract create(options: CreateMethodOptions<AbstractValidator>): Promise<E>;
|
|
74
|
+
abstract update(locator: EntityLocator<E>, options: UpdateMethodOptions<AbstractValidator>): Promise<E>;
|
|
75
|
+
delete(locator: EntityLocator<E>, options?: DeleteMethodOptions): Promise<void>;
|
|
59
76
|
}
|
|
60
77
|
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare abstract class AbstractTransition<S extends string, E = unknown> {
|
|
2
|
+
private $current: S;
|
|
3
|
+
constructor(current: S);
|
|
4
|
+
protected abstract readonly $states: Readonly<Record<S, readonly S[]>>;
|
|
5
|
+
canTransition(from: S, to: S): boolean;
|
|
6
|
+
readonly nextStates: readonly S[];
|
|
7
|
+
readonly prevStates: S[];
|
|
8
|
+
readonly isTerminal: boolean;
|
|
9
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export class AbstractTransition {
|
|
2
|
+
constructor(current) {
|
|
3
|
+
this.$current = current;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
canTransition(from, to) {
|
|
7
|
+
const allowed = this.$states[from] ?? [];
|
|
8
|
+
return allowed.includes(to);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
get nextStates() {
|
|
12
|
+
return this.$states[this.$current] ?? [];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
get prevStates() {
|
|
16
|
+
return Object.entries(this.$states)
|
|
17
|
+
.filter(([, next]) => next.includes(this.$current))
|
|
18
|
+
.map(([prev]) => prev);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
get isTerminal() {
|
|
22
|
+
return (this.$states[this.$current] ?? []).length === 0;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
import { PurchaseTransactionEntity } from '../../order/purchase/transaction';
|
|
2
2
|
import { SaleTransactionEntity } from '../../order/sale/transaction';
|
|
3
3
|
import { AbstractEntity, MongoEntity } from '../..';
|
|
4
|
-
import {
|
|
5
|
-
import type { FinanceRefundEntity } from '../refund';
|
|
4
|
+
import { FinancePaymentMethodEnum, FinancePaymentStatusEnum, FinancePaymentTypeEnum } from './payment.enum.js';
|
|
6
5
|
export declare class FinancePaymentEntity extends AbstractEntity {
|
|
7
6
|
type: FinancePaymentTypeEnum;
|
|
8
7
|
target: string;
|
|
9
8
|
order: MongoEntity<SaleTransactionEntity | PurchaseTransactionEntity>;
|
|
10
9
|
status: FinancePaymentStatusEnum;
|
|
11
|
-
date: Date;
|
|
12
10
|
total: number;
|
|
13
11
|
fee: number;
|
|
14
|
-
method
|
|
15
|
-
refunds: MongoEntity<FinanceRefundEntity>[];
|
|
12
|
+
method?: FinancePaymentMethodEnum;
|
|
16
13
|
sequence: number;
|
|
17
14
|
readonly number: string;
|
|
18
|
-
readonly refundedTotal: number;
|
|
19
15
|
}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
export declare enum FinancePaymentStatusEnum {
|
|
2
|
-
OPEN = "OPEN",
|
|
3
2
|
PENDING = "PENDING",
|
|
4
|
-
FAILED = "FAILED",
|
|
5
|
-
DISPUTED = "DISPUTED",
|
|
6
3
|
PAID = "PAID",
|
|
7
|
-
|
|
8
|
-
REFUNDED = "REFUNDED"
|
|
9
|
-
CANCELLED = "CANCELLED"
|
|
4
|
+
CANCELLED = "CANCELLED",
|
|
5
|
+
REFUNDED = "REFUNDED"
|
|
10
6
|
}
|
|
11
7
|
export declare enum FinancePaymentMethodEnum {
|
|
12
8
|
CARD = "CARD",
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
export var FinancePaymentStatusEnum;
|
|
2
2
|
(function (FinancePaymentStatusEnum) {
|
|
3
|
-
FinancePaymentStatusEnum["OPEN"] = "OPEN";
|
|
4
3
|
FinancePaymentStatusEnum["PENDING"] = "PENDING";
|
|
5
|
-
FinancePaymentStatusEnum["FAILED"] = "FAILED";
|
|
6
|
-
FinancePaymentStatusEnum["DISPUTED"] = "DISPUTED";
|
|
7
4
|
FinancePaymentStatusEnum["PAID"] = "PAID";
|
|
8
|
-
FinancePaymentStatusEnum["PARTIALLY_REFUNDED"] = "PARTIALLY_REFUNDED";
|
|
9
|
-
FinancePaymentStatusEnum["REFUNDED"] = "REFUNDED";
|
|
10
5
|
FinancePaymentStatusEnum["CANCELLED"] = "CANCELLED";
|
|
6
|
+
FinancePaymentStatusEnum["REFUNDED"] = "REFUNDED";
|
|
11
7
|
})(FinancePaymentStatusEnum || (FinancePaymentStatusEnum = {}));
|
|
12
8
|
export var FinancePaymentMethodEnum;
|
|
13
9
|
(function (FinancePaymentMethodEnum) {
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AbstractTransition } from '../../abstract.transition.js';
|
|
2
|
+
import { FinancePaymentStatusEnum } from './payment.enum.js';
|
|
3
|
+
|
|
4
|
+
export declare class FinancePaymentTransition extends AbstractTransition<FinancePaymentStatusEnum, unknown> {
|
|
5
|
+
protected readonly $states: Readonly<Record<FinancePaymentStatusEnum, readonly FinancePaymentStatusEnum[]>>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AbstractTransition } from '../../abstract.transition.js';
|
|
2
|
+
import * as payment_enum_1 from './payment.enum.js';
|
|
3
|
+
|
|
4
|
+
export class FinancePaymentTransition extends AbstractTransition {
|
|
5
|
+
$states = {
|
|
6
|
+
[payment_enum_1.FinancePaymentStatusEnum.PENDING]: [
|
|
7
|
+
payment_enum_1.FinancePaymentStatusEnum.PAID,
|
|
8
|
+
payment_enum_1.FinancePaymentStatusEnum.CANCELLED,
|
|
9
|
+
],
|
|
10
|
+
[payment_enum_1.FinancePaymentStatusEnum.PAID]: [payment_enum_1.FinancePaymentStatusEnum.REFUNDED],
|
|
11
|
+
[payment_enum_1.FinancePaymentStatusEnum.REFUNDED]: [],
|
|
12
|
+
[payment_enum_1.FinancePaymentStatusEnum.CANCELLED]: [],
|
|
13
|
+
};
|
|
14
|
+
}
|
|
@@ -7,9 +7,8 @@ export declare class ReadFinancePaymentValidator extends ReadValidator<FinancePa
|
|
|
7
7
|
}
|
|
8
8
|
export declare class SaveFinancePaymentValidator extends AbstractValidator {
|
|
9
9
|
orderType: FinancePaymentTypeEnum;
|
|
10
|
-
target: string;
|
|
11
10
|
order?: string;
|
|
12
|
-
method
|
|
11
|
+
method?: FinancePaymentMethodEnum;
|
|
13
12
|
total?: number;
|
|
14
|
-
status
|
|
13
|
+
status?: FinancePaymentStatusEnum;
|
|
15
14
|
}
|
|
@@ -16,7 +16,6 @@ export class ReadFinancePaymentValidator extends abstract_validator_1.ReadValida
|
|
|
16
16
|
}
|
|
17
17
|
export class SaveFinancePaymentValidator extends abstract_validator_1.AbstractValidator {
|
|
18
18
|
orderType;
|
|
19
|
-
target;
|
|
20
19
|
order;
|
|
21
20
|
method;
|
|
22
21
|
total;
|
|
@@ -27,12 +26,6 @@ __decorate([
|
|
|
27
26
|
(0, class_validator_1.IsOptional)({ groups: ['update'] }),
|
|
28
27
|
__metadata("design:type", String)
|
|
29
28
|
], SaveFinancePaymentValidator.prototype, "orderType", void 0);
|
|
30
|
-
__decorate([
|
|
31
|
-
(0, class_validator_1.IsString)(),
|
|
32
|
-
(0, class_validator_1.Length)(0, 255),
|
|
33
|
-
(0, class_validator_1.IsOptional)({ groups: ['update'] }),
|
|
34
|
-
__metadata("design:type", String)
|
|
35
|
-
], SaveFinancePaymentValidator.prototype, "target", void 0);
|
|
36
29
|
__decorate([
|
|
37
30
|
(0, class_validator_1.IsMongoId)(),
|
|
38
31
|
(0, class_validator_1.IsOptional)(),
|
|
@@ -40,7 +33,7 @@ __decorate([
|
|
|
40
33
|
], SaveFinancePaymentValidator.prototype, "order", void 0);
|
|
41
34
|
__decorate([
|
|
42
35
|
(0, class_validator_1.IsEnum)(payment_enum_1.FinancePaymentMethodEnum),
|
|
43
|
-
(0, class_validator_1.IsOptional)(
|
|
36
|
+
(0, class_validator_1.IsOptional)(),
|
|
44
37
|
__metadata("design:type", String)
|
|
45
38
|
], SaveFinancePaymentValidator.prototype, "method", void 0);
|
|
46
39
|
__decorate([
|
|
@@ -50,6 +43,6 @@ __decorate([
|
|
|
50
43
|
], SaveFinancePaymentValidator.prototype, "total", void 0);
|
|
51
44
|
__decorate([
|
|
52
45
|
(0, class_validator_1.IsEnum)(payment_enum_1.FinancePaymentStatusEnum),
|
|
53
|
-
(0, class_validator_1.
|
|
46
|
+
(0, class_validator_1.IsOptional)(),
|
|
54
47
|
__metadata("design:type", String)
|
|
55
48
|
], SaveFinancePaymentValidator.prototype, "status", void 0);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AbstractTransition } from '../../abstract.transition.js';
|
|
2
|
+
import { FinanceRefundStatusEnum } from './refund.enum.js';
|
|
3
|
+
|
|
4
|
+
export declare class FinanceRefundTransition extends AbstractTransition<FinanceRefundStatusEnum, unknown> {
|
|
5
|
+
protected readonly $states: Readonly<Record<FinanceRefundStatusEnum, readonly FinanceRefundStatusEnum[]>>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AbstractTransition } from '../../abstract.transition.js';
|
|
2
|
+
import * as refund_enum_1 from './refund.enum.js';
|
|
3
|
+
|
|
4
|
+
export class FinanceRefundTransition extends AbstractTransition {
|
|
5
|
+
$states = {
|
|
6
|
+
[refund_enum_1.FinanceRefundStatusEnum.PENDING]: [
|
|
7
|
+
refund_enum_1.FinanceRefundStatusEnum.APPROVED,
|
|
8
|
+
refund_enum_1.FinanceRefundStatusEnum.REJECTED,
|
|
9
|
+
refund_enum_1.FinanceRefundStatusEnum.CANCELLED,
|
|
10
|
+
],
|
|
11
|
+
[refund_enum_1.FinanceRefundStatusEnum.APPROVED]: [
|
|
12
|
+
refund_enum_1.FinanceRefundStatusEnum.PROCESSING,
|
|
13
|
+
refund_enum_1.FinanceRefundStatusEnum.CANCELLED,
|
|
14
|
+
],
|
|
15
|
+
[refund_enum_1.FinanceRefundStatusEnum.PROCESSING]: [
|
|
16
|
+
refund_enum_1.FinanceRefundStatusEnum.COMPLETED,
|
|
17
|
+
refund_enum_1.FinanceRefundStatusEnum.CANCELLED,
|
|
18
|
+
],
|
|
19
|
+
[refund_enum_1.FinanceRefundStatusEnum.COMPLETED]: [],
|
|
20
|
+
[refund_enum_1.FinanceRefundStatusEnum.REJECTED]: [],
|
|
21
|
+
[refund_enum_1.FinanceRefundStatusEnum.CANCELLED]: [],
|
|
22
|
+
};
|
|
23
|
+
}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { AssetEntity } from '../../../assets/asset';
|
|
2
|
-
import { CatalogProductStatus } from './';
|
|
3
2
|
import { AbstractEntity } from '../../..';
|
|
4
3
|
import { CatalogAttributeEntity } from '../attribute';
|
|
5
4
|
import type { CatalogBrandEntity } from '../brand';
|
|
@@ -25,7 +24,6 @@ export declare class CatalogProductEntity extends AbstractEntity {
|
|
|
25
24
|
unit: string;
|
|
26
25
|
};
|
|
27
26
|
hashtags: string[];
|
|
28
|
-
status: CatalogProductStatus;
|
|
29
27
|
variants: MongoEntity<CatalogVariantEntity>[];
|
|
30
28
|
readonly hasVariants: boolean;
|
|
31
29
|
readonly stock: number;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { CatalogProductEntity } from './';
|
|
2
|
-
import { CatalogProductStatus } from './';
|
|
3
2
|
import { AbstractValidator, ReadValidator, SearchValidator } from '../../..';
|
|
4
3
|
export declare class SearchCatalogProductValidator extends SearchValidator<CatalogProductEntity> {
|
|
5
4
|
}
|
|
@@ -26,5 +25,4 @@ export declare class SaveCatalogProductValidator extends AbstractValidator {
|
|
|
26
25
|
brand: string;
|
|
27
26
|
hashtags: string[];
|
|
28
27
|
attributes: ProductAttributeValidator[];
|
|
29
|
-
status: CatalogProductStatus;
|
|
30
28
|
}
|
|
@@ -9,7 +9,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
};
|
|
10
10
|
import * as class_transformer_1 from "class-transformer";
|
|
11
11
|
import * as class_validator_1 from "class-validator";
|
|
12
|
-
import * as product_status_enum_1 from './product.status.enum.js';
|
|
13
12
|
import * as abstract_validator_1 from '../../..';
|
|
14
13
|
export class SearchCatalogProductValidator extends abstract_validator_1.SearchValidator {
|
|
15
14
|
}
|
|
@@ -38,7 +37,6 @@ export class SaveCatalogProductValidator extends abstract_validator_1.AbstractVa
|
|
|
38
37
|
this.name = entity.name;
|
|
39
38
|
this.description = entity.description;
|
|
40
39
|
this.price = entity.price;
|
|
41
|
-
this.status = entity.status;
|
|
42
40
|
this.category = (0, abstract_validator_1.toId)(entity.category);
|
|
43
41
|
this.brand = (0, abstract_validator_1.toId)(entity.brand);
|
|
44
42
|
this.measure.amount = entity.measure?.amount;
|
|
@@ -56,7 +54,6 @@ export class SaveCatalogProductValidator extends abstract_validator_1.AbstractVa
|
|
|
56
54
|
brand;
|
|
57
55
|
hashtags = [];
|
|
58
56
|
attributes = [];
|
|
59
|
-
status = product_status_enum_1.CatalogProductStatus.Draft;
|
|
60
57
|
}
|
|
61
58
|
__decorate([
|
|
62
59
|
(0, class_validator_1.IsString)(),
|
|
@@ -123,9 +120,3 @@ __decorate([
|
|
|
123
120
|
(0, class_validator_1.IsOptional)({ groups: ['update'] }),
|
|
124
121
|
__metadata("design:type", Array)
|
|
125
122
|
], SaveCatalogProductValidator.prototype, "attributes", void 0);
|
|
126
|
-
__decorate([
|
|
127
|
-
(0, class_transformer_1.Transform)(({ value }) => value?.toString().toLowerCase()),
|
|
128
|
-
(0, class_validator_1.IsEnum)(product_status_enum_1.CatalogProductStatus),
|
|
129
|
-
(0, class_validator_1.IsOptional)({ groups: ['update'] }),
|
|
130
|
-
__metadata("design:type", String)
|
|
131
|
-
], SaveCatalogProductValidator.prototype, "status", void 0);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export var TransferStatusEnum;
|
|
2
2
|
(function (TransferStatusEnum) {
|
|
3
3
|
TransferStatusEnum["PENDING"] = "PENDING";
|
|
4
|
-
TransferStatusEnum["IN_TRANSIT"] = "IN_TRANSIT";
|
|
5
4
|
TransferStatusEnum["PAUSED"] = "PAUSED";
|
|
6
5
|
TransferStatusEnum["COMPLETED"] = "COMPLETED";
|
|
7
6
|
TransferStatusEnum["CANCELLED"] = "CANCELLED";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AbstractTransition } from '../../../abstract.transition.js';
|
|
2
|
+
import { TransferStatusEnum as Status } from './transfer.status.enum.js';
|
|
3
|
+
|
|
4
|
+
export declare class StockTransferTransition extends AbstractTransition<Status, unknown> {
|
|
5
|
+
protected readonly $states: Readonly<Record<Status, readonly Status[]>>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AbstractTransition } from '../../../abstract.transition.js';
|
|
2
|
+
import * as transfer_status_enum_1 from './transfer.status.enum.js';
|
|
3
|
+
|
|
4
|
+
export class StockTransferTransition extends AbstractTransition {
|
|
5
|
+
$states = {
|
|
6
|
+
[transfer_status_enum_1.TransferStatusEnum.PENDING]: [transfer_status_enum_1.TransferStatusEnum.PAUSED, transfer_status_enum_1.TransferStatusEnum.COMPLETED, transfer_status_enum_1.TransferStatusEnum.CANCELLED],
|
|
7
|
+
[transfer_status_enum_1.TransferStatusEnum.PAUSED]: [transfer_status_enum_1.TransferStatusEnum.PENDING, transfer_status_enum_1.TransferStatusEnum.COMPLETED, transfer_status_enum_1.TransferStatusEnum.CANCELLED],
|
|
8
|
+
[transfer_status_enum_1.TransferStatusEnum.COMPLETED]: [],
|
|
9
|
+
[transfer_status_enum_1.TransferStatusEnum.CANCELLED]: [],
|
|
10
|
+
};
|
|
11
|
+
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export var PurchaseTransactionStatusEnum;
|
|
2
2
|
(function (PurchaseTransactionStatusEnum) {
|
|
3
|
-
PurchaseTransactionStatusEnum["DRAFT"] = "DRAFT";
|
|
4
3
|
PurchaseTransactionStatusEnum["REQUESTED"] = "REQUESTED";
|
|
5
4
|
PurchaseTransactionStatusEnum["PAUSED"] = "PAUSED";
|
|
6
5
|
PurchaseTransactionStatusEnum["RECEIVED"] = "RECEIVED";
|
|
@@ -0,0 +1,6 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
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.REQUESTED]: [transaction_enum_1.PurchaseTransactionStatusEnum.PAUSED, transaction_enum_1.PurchaseTransactionStatusEnum.RECEIVED, transaction_enum_1.PurchaseTransactionStatusEnum.CANCELLED],
|
|
7
|
+
[transaction_enum_1.PurchaseTransactionStatusEnum.PAUSED]: [transaction_enum_1.PurchaseTransactionStatusEnum.REQUESTED, transaction_enum_1.PurchaseTransactionStatusEnum.CANCELLED],
|
|
8
|
+
[transaction_enum_1.PurchaseTransactionStatusEnum.RECEIVED]: [],
|
|
9
|
+
[transaction_enum_1.PurchaseTransactionStatusEnum.CANCELLED]: [],
|
|
10
|
+
};
|
|
11
|
+
}
|
|
@@ -28,7 +28,9 @@ export class SavePurchaseTransactionValidator extends abstract_validator_1.Abstr
|
|
|
28
28
|
total: item.total,
|
|
29
29
|
variant: (0, abstract_validator_1.toId)(item.variant),
|
|
30
30
|
}));
|
|
31
|
+
const transfer = entity.transfer;
|
|
31
32
|
this.notes = entity.notes;
|
|
33
|
+
this.warehouse = (0, abstract_validator_1.toId)(transfer?.destination);
|
|
32
34
|
this.vendor = (0, abstract_validator_1.toId)(entity.vendor);
|
|
33
35
|
}
|
|
34
36
|
items = [];
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export var SaleTransactionStatusEnum;
|
|
2
2
|
(function (SaleTransactionStatusEnum) {
|
|
3
|
-
SaleTransactionStatusEnum["PENDING"] = "PENDING";
|
|
4
3
|
SaleTransactionStatusEnum["PROCESSING"] = "PROCESSING";
|
|
5
4
|
SaleTransactionStatusEnum["PAUSED"] = "PAUSED";
|
|
6
5
|
SaleTransactionStatusEnum["COMPLETED"] = "COMPLETED";
|
|
@@ -0,0 +1,6 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
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.PROCESSING]: [transaction_enum_1.SaleTransactionStatusEnum.PAUSED, transaction_enum_1.SaleTransactionStatusEnum.COMPLETED, transaction_enum_1.SaleTransactionStatusEnum.CANCELLED],
|
|
7
|
+
[transaction_enum_1.SaleTransactionStatusEnum.PAUSED]: [transaction_enum_1.SaleTransactionStatusEnum.PROCESSING, transaction_enum_1.SaleTransactionStatusEnum.CANCELLED],
|
|
8
|
+
[transaction_enum_1.SaleTransactionStatusEnum.COMPLETED]: [],
|
|
9
|
+
[transaction_enum_1.SaleTransactionStatusEnum.CANCELLED]: [],
|
|
10
|
+
};
|
|
11
|
+
}
|
|
@@ -27,13 +27,13 @@ export class SaveSaleTransactionValidator extends abstract_validator_1.AbstractV
|
|
|
27
27
|
total: item.total,
|
|
28
28
|
variant: (0, abstract_validator_1.toId)(item.variant),
|
|
29
29
|
}));
|
|
30
|
+
const transfer = entity.transfer;
|
|
31
|
+
this.warehouse = (0, abstract_validator_1.toId)(transfer?.origin);
|
|
30
32
|
this.notes = entity.notes;
|
|
31
33
|
this.customer = (0, abstract_validator_1.toId)(entity.customer);
|
|
32
|
-
this.user = (0, abstract_validator_1.toId)(entity.user);
|
|
33
34
|
}
|
|
34
35
|
items = [];
|
|
35
36
|
notes;
|
|
36
|
-
user;
|
|
37
37
|
customer;
|
|
38
38
|
warehouse;
|
|
39
39
|
get total() {
|
|
@@ -54,11 +54,6 @@ __decorate([
|
|
|
54
54
|
(0, class_validator_1.IsOptional)(),
|
|
55
55
|
__metadata("design:type", String)
|
|
56
56
|
], SaveSaleTransactionValidator.prototype, "notes", void 0);
|
|
57
|
-
__decorate([
|
|
58
|
-
(0, class_validator_1.IsMongoId)(),
|
|
59
|
-
(0, class_validator_1.IsOptional)({ groups: ['update'] }),
|
|
60
|
-
__metadata("design:type", String)
|
|
61
|
-
], SaveSaleTransactionValidator.prototype, "user", void 0);
|
|
62
57
|
__decorate([
|
|
63
58
|
(0, class_validator_1.IsMongoId)(),
|
|
64
59
|
(0, class_validator_1.IsOptional)(),
|
package/package.json
CHANGED
|
@@ -1,101 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@merkaly/api",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Shared TypeScript interfaces and enums for Merkaly API",
|
|
6
6
|
"exports": {
|
|
7
|
-
"
|
|
8
|
-
"types": "./dist/
|
|
9
|
-
"default": "./dist/
|
|
7
|
+
".": {
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"default": "./dist/index.js"
|
|
10
10
|
},
|
|
11
|
-
"
|
|
12
|
-
"types": "./dist
|
|
13
|
-
"default": "./dist
|
|
11
|
+
"./*": {
|
|
12
|
+
"types": "./dist/*/index.d.ts",
|
|
13
|
+
"default": "./dist/*/index.js"
|
|
14
14
|
},
|
|
15
|
-
"./
|
|
16
|
-
"types": "./dist/inventory/catalog/brand/index.d.ts",
|
|
17
|
-
"default": "./dist/inventory/catalog/brand/index.js"
|
|
18
|
-
},
|
|
19
|
-
"./inventory/catalog/attribute": {
|
|
20
|
-
"types": "./dist/inventory/catalog/attribute/index.d.ts",
|
|
21
|
-
"default": "./dist/inventory/catalog/attribute/index.js"
|
|
22
|
-
},
|
|
23
|
-
"./inventory/catalog/collection": {
|
|
24
|
-
"types": "./dist/inventory/catalog/collection/index.d.ts",
|
|
25
|
-
"default": "./dist/inventory/catalog/collection/index.js"
|
|
26
|
-
},
|
|
27
|
-
"./inventory/catalog/variant": {
|
|
28
|
-
"types": "./dist/inventory/catalog/variant/index.d.ts",
|
|
29
|
-
"default": "./dist/inventory/catalog/variant/index.js"
|
|
30
|
-
},
|
|
31
|
-
"./inventory/configuration/measurement": {
|
|
32
|
-
"types": "./dist/inventory/configuration/measurement/index.d.ts",
|
|
33
|
-
"default": "./dist/inventory/configuration/measurement/index.js"
|
|
34
|
-
},
|
|
35
|
-
"./inventory/configuration/unit": {
|
|
36
|
-
"types": "./dist/inventory/configuration/unit/index.d.ts",
|
|
37
|
-
"default": "./dist/inventory/configuration/unit/index.js"
|
|
38
|
-
},
|
|
39
|
-
"./inventory/stock/warehouse": {
|
|
40
|
-
"types": "./dist/inventory/stock/warehouse/index.d.ts",
|
|
41
|
-
"default": "./dist/inventory/stock/warehouse/index.js"
|
|
42
|
-
},
|
|
43
|
-
"./inventory/stock/transfer": {
|
|
44
|
-
"types": "./dist/inventory/stock/transfer/index.d.ts",
|
|
45
|
-
"default": "./dist/inventory/stock/transfer/index.js"
|
|
46
|
-
},
|
|
47
|
-
"./order/sale/transaction": {
|
|
48
|
-
"types": "./dist/order/sale/transaction/index.d.ts",
|
|
49
|
-
"default": "./dist/order/sale/transaction/index.js"
|
|
50
|
-
},
|
|
51
|
-
"./order/sale/customer": {
|
|
52
|
-
"types": "./dist/order/sale/customer/index.d.ts",
|
|
53
|
-
"default": "./dist/order/sale/customer/index.js"
|
|
54
|
-
},
|
|
55
|
-
"./order/sale/item": {
|
|
56
|
-
"types": "./dist/order/sale/item/index.d.ts",
|
|
57
|
-
"default": "./dist/order/sale/item/index.js"
|
|
58
|
-
},
|
|
59
|
-
"./order/purchase/transaction": {
|
|
60
|
-
"types": "./dist/order/purchase/transaction/index.d.ts",
|
|
61
|
-
"default": "./dist/order/purchase/transaction/index.js"
|
|
62
|
-
},
|
|
63
|
-
"./order/purchase/vendor": {
|
|
64
|
-
"types": "./dist/order/purchase/vendor/index.d.ts",
|
|
65
|
-
"default": "./dist/order/purchase/vendor/index.js"
|
|
66
|
-
},
|
|
67
|
-
"./order/purchase/item": {
|
|
68
|
-
"types": "./dist/order/purchase/item/index.d.ts",
|
|
69
|
-
"default": "./dist/order/purchase/item/index.js"
|
|
70
|
-
},
|
|
71
|
-
"./finance/payment": {
|
|
72
|
-
"types": "./dist/finance/payment/index.d.ts",
|
|
73
|
-
"default": "./dist/finance/payment/index.js"
|
|
74
|
-
},
|
|
75
|
-
"./finance/invoice": {
|
|
76
|
-
"types": "./dist/finance/invoice/index.d.ts",
|
|
77
|
-
"default": "./dist/finance/invoice/index.js"
|
|
78
|
-
},
|
|
79
|
-
"./finance/refund": {
|
|
80
|
-
"types": "./dist/finance/refund/index.d.ts",
|
|
81
|
-
"default": "./dist/finance/refund/index.js"
|
|
82
|
-
},
|
|
83
|
-
"./finance/tax": {
|
|
84
|
-
"types": "./dist/finance/tax/index.d.ts",
|
|
85
|
-
"default": "./dist/finance/tax/index.js"
|
|
86
|
-
},
|
|
87
|
-
"./finance/subscription": {
|
|
88
|
-
"types": "./dist/finance/subscription/index.d.ts",
|
|
89
|
-
"default": "./dist/finance/subscription/index.js"
|
|
90
|
-
},
|
|
91
|
-
"./account/user": {
|
|
92
|
-
"types": "./dist/account/user/index.d.ts",
|
|
93
|
-
"default": "./dist/account/user/index.js"
|
|
94
|
-
},
|
|
95
|
-
"./account/address": {
|
|
96
|
-
"types": "./dist/account/address/index.d.ts",
|
|
97
|
-
"default": "./dist/account/address/index.js"
|
|
98
|
-
}
|
|
15
|
+
"./package.json": "./package.json"
|
|
99
16
|
},
|
|
100
17
|
"files": [
|
|
101
18
|
"dist"
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export var CatalogProductStatus;
|
|
2
|
-
(function (CatalogProductStatus) {
|
|
3
|
-
CatalogProductStatus["Draft"] = "draft";
|
|
4
|
-
CatalogProductStatus["Published"] = "published";
|
|
5
|
-
CatalogProductStatus["Archived"] = "archived";
|
|
6
|
-
CatalogProductStatus["OutOfStock"] = "out_of_stock";
|
|
7
|
-
CatalogProductStatus["Discontinued"] = "discontinued";
|
|
8
|
-
CatalogProductStatus["ComingSoon"] = "coming_soon";
|
|
9
|
-
})(CatalogProductStatus || (CatalogProductStatus = {}));
|