@merkaly/api 0.12.0 → 0.13.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/finance/payment/payment.entity.d.ts +1 -1
- package/dist/finance/payment/payment.transition.js +1 -1
- package/dist/integration/supplier/index.d.ts +1 -0
- package/dist/integration/supplier/order.d.ts +41 -0
- package/dist/order/purchase/index.d.ts +3 -0
- package/dist/order/purchase/index.js +2 -0
- package/dist/order/purchase/purchase.entity.d.ts +3 -0
- package/dist/order/purchase/purchase.supplier.order.entity.d.ts +24 -0
- package/dist/order/purchase/supplier.order.enum.d.ts +11 -0
- package/dist/order/purchase/supplier.order.enum.js +23 -0
- package/dist/order/purchase/supplier.order.request.validator.d.ts +7 -0
- package/dist/order/purchase/supplier.order.request.validator.js +28 -0
- package/dist/order/sale/checkout.d.ts +27 -0
- package/dist/order/sale/fulfillment.d.ts +33 -0
- package/dist/order/sale/fulfillment.enum.d.ts +17 -0
- package/dist/order/sale/fulfillment.enum.js +19 -0
- package/dist/order/sale/index.d.ts +5 -0
- package/dist/order/sale/index.js +3 -0
- package/dist/order/sale/payment.confirm.request.validator.d.ts +5 -0
- package/dist/order/sale/payment.confirm.request.validator.js +21 -0
- package/dist/order/sale/quote.request.validator.d.ts +10 -0
- package/dist/order/sale/quote.request.validator.js +47 -0
- package/dist/order/sale/sale.shipping.entity.d.ts +36 -3
- package/dist/order/sale/sale.transition.js +2 -2
- package/dist/order/sale/shipping.request.validator.d.ts +5 -0
- package/dist/order/sale/shipping.request.validator.js +47 -0
- package/dist/transaction.entity.d.ts +1 -0
- package/package.json +1 -1
|
@@ -11,7 +11,7 @@ export declare class FinancePaymentEntity extends AbstractEntity implements ITra
|
|
|
11
11
|
order: OrderEntity;
|
|
12
12
|
amount: number;
|
|
13
13
|
fee: number;
|
|
14
|
-
method?: FinancePaymentMethodEnum;
|
|
14
|
+
method?: FinancePaymentMethodEnum | null;
|
|
15
15
|
status: FinancePaymentStatusEnum;
|
|
16
16
|
history: StatusEntity<FinancePaymentStatusEnum>[];
|
|
17
17
|
readonly number: string;
|
|
@@ -3,7 +3,7 @@ import * as payment_enum_1 from './payment.enum.js';
|
|
|
3
3
|
|
|
4
4
|
export class FinancePaymentTransition extends AbstractTransition {
|
|
5
5
|
$states = {
|
|
6
|
-
[payment_enum_1.FinancePaymentStatusEnum.PENDING]: [payment_enum_1.FinancePaymentStatusEnum.CANCELLED],
|
|
6
|
+
[payment_enum_1.FinancePaymentStatusEnum.PENDING]: [payment_enum_1.FinancePaymentStatusEnum.PAID, payment_enum_1.FinancePaymentStatusEnum.CANCELLED],
|
|
7
7
|
[payment_enum_1.FinancePaymentStatusEnum.PAID]: [],
|
|
8
8
|
[payment_enum_1.FinancePaymentStatusEnum.CANCELLED]: [],
|
|
9
9
|
[payment_enum_1.FinancePaymentStatusEnum.REFUNDED]: [],
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { OrderSupplierOrderStatusEnum } from '../../order/purchase';
|
|
2
|
+
export interface SupplierOrderLine {
|
|
3
|
+
externalProductId: string;
|
|
4
|
+
externalVariantId: string;
|
|
5
|
+
quantity: number;
|
|
6
|
+
}
|
|
7
|
+
export interface SupplierOrderRecipient {
|
|
8
|
+
name: string;
|
|
9
|
+
email: string;
|
|
10
|
+
phone: string;
|
|
11
|
+
document: string;
|
|
12
|
+
birthday?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface SupplierOrderAddress {
|
|
15
|
+
postalCode: string;
|
|
16
|
+
street: string;
|
|
17
|
+
number: string;
|
|
18
|
+
complement?: string;
|
|
19
|
+
district: string;
|
|
20
|
+
city: string;
|
|
21
|
+
state: string;
|
|
22
|
+
country: string;
|
|
23
|
+
}
|
|
24
|
+
export interface SupplierOrderRequest {
|
|
25
|
+
reference: string;
|
|
26
|
+
lines: SupplierOrderLine[];
|
|
27
|
+
recipient: SupplierOrderRecipient;
|
|
28
|
+
address: SupplierOrderAddress;
|
|
29
|
+
}
|
|
30
|
+
export interface SupplierOrderPlacement {
|
|
31
|
+
externalOrderIds: string[];
|
|
32
|
+
status: OrderSupplierOrderStatusEnum;
|
|
33
|
+
warning?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface SupplierOrderSnapshot {
|
|
36
|
+
status?: OrderSupplierOrderStatusEnum;
|
|
37
|
+
rawStatus: string;
|
|
38
|
+
trackingNumbers: string[];
|
|
39
|
+
carrier?: string;
|
|
40
|
+
trackingUrl?: string;
|
|
41
|
+
}
|
|
@@ -3,3 +3,6 @@ export * from './purchase.enum';
|
|
|
3
3
|
export * from './purchase.transition';
|
|
4
4
|
export * from './request.validator';
|
|
5
5
|
export * from './item.request.validator';
|
|
6
|
+
export * from './purchase.supplier.order.entity';
|
|
7
|
+
export * from './supplier.order.enum';
|
|
8
|
+
export * from './supplier.order.request.validator';
|
|
@@ -2,9 +2,12 @@ import { ContactVendorEntity } from '../../contact/vendor';
|
|
|
2
2
|
import { ItemEntity } from '../item';
|
|
3
3
|
import { TransactionEntity } from '../../transaction.entity.js';
|
|
4
4
|
import { OrderPurchaseStatusEnum } from './purchase.enum.js';
|
|
5
|
+
import { OrderPurchaseSupplierOrderEntity } from './purchase.supplier.order.entity.js';
|
|
5
6
|
import type { OrderSaleEntity } from '../sale';
|
|
6
7
|
export declare class OrderPurchaseEntity extends TransactionEntity<OrderPurchaseStatusEnum> {
|
|
7
8
|
vendor?: ContactVendorEntity;
|
|
8
9
|
customerOrder?: OrderSaleEntity;
|
|
9
10
|
items: ItemEntity[];
|
|
11
|
+
freight?: number;
|
|
12
|
+
supplierOrder?: OrderPurchaseSupplierOrderEntity;
|
|
10
13
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SupplierProviderEnum } from '../../integration/supplier';
|
|
2
|
+
import { OrderSupplierOrderStatusEnum } from './supplier.order.enum.js';
|
|
3
|
+
export declare class OrderPurchaseSupplierOrderEntity {
|
|
4
|
+
provider: SupplierProviderEnum;
|
|
5
|
+
externalOrderIds: string[];
|
|
6
|
+
reference?: string;
|
|
7
|
+
status: OrderSupplierOrderStatusEnum;
|
|
8
|
+
rawStatus?: string;
|
|
9
|
+
placedAt: Date;
|
|
10
|
+
syncedAt?: Date;
|
|
11
|
+
trackingNumbers: string[];
|
|
12
|
+
carrier?: string;
|
|
13
|
+
trackingUrl?: string;
|
|
14
|
+
error?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const OrderPurchaseSupplierOrderSchema: import("mongoose").Schema<OrderPurchaseSupplierOrderEntity, import("mongoose").Model<OrderPurchaseSupplierOrderEntity, any, any, any, import("mongoose").Document<unknown, any, OrderPurchaseSupplierOrderEntity, any, {}> & OrderPurchaseSupplierOrderEntity & {
|
|
17
|
+
_id: import("mongoose").Types.ObjectId;
|
|
18
|
+
} & {
|
|
19
|
+
__v: number;
|
|
20
|
+
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, OrderPurchaseSupplierOrderEntity, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<OrderPurchaseSupplierOrderEntity>, {}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & import("mongoose").FlatRecord<OrderPurchaseSupplierOrderEntity> & {
|
|
21
|
+
_id: import("mongoose").Types.ObjectId;
|
|
22
|
+
} & {
|
|
23
|
+
__v: number;
|
|
24
|
+
}>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare enum OrderSupplierOrderStatusEnum {
|
|
2
|
+
PLACED = "PLACED",
|
|
3
|
+
AWAITING_PAYMENT = "AWAITING_PAYMENT",
|
|
4
|
+
PAID = "PAID",
|
|
5
|
+
SHIPPED = "SHIPPED",
|
|
6
|
+
DELIVERED = "DELIVERED",
|
|
7
|
+
CANCELLED = "CANCELLED",
|
|
8
|
+
FAILED = "FAILED"
|
|
9
|
+
}
|
|
10
|
+
export declare const SUPPLIER_ORDER_PROGRESS: readonly OrderSupplierOrderStatusEnum[];
|
|
11
|
+
export declare const SUPPLIER_ORDER_SYNCABLE_STATUSES: readonly OrderSupplierOrderStatusEnum[];
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export var OrderSupplierOrderStatusEnum;
|
|
2
|
+
(function (OrderSupplierOrderStatusEnum) {
|
|
3
|
+
OrderSupplierOrderStatusEnum["PLACED"] = "PLACED";
|
|
4
|
+
OrderSupplierOrderStatusEnum["AWAITING_PAYMENT"] = "AWAITING_PAYMENT";
|
|
5
|
+
OrderSupplierOrderStatusEnum["PAID"] = "PAID";
|
|
6
|
+
OrderSupplierOrderStatusEnum["SHIPPED"] = "SHIPPED";
|
|
7
|
+
OrderSupplierOrderStatusEnum["DELIVERED"] = "DELIVERED";
|
|
8
|
+
OrderSupplierOrderStatusEnum["CANCELLED"] = "CANCELLED";
|
|
9
|
+
OrderSupplierOrderStatusEnum["FAILED"] = "FAILED";
|
|
10
|
+
})(OrderSupplierOrderStatusEnum || (OrderSupplierOrderStatusEnum = {}));
|
|
11
|
+
export const SUPPLIER_ORDER_PROGRESS = [
|
|
12
|
+
OrderSupplierOrderStatusEnum.PLACED,
|
|
13
|
+
OrderSupplierOrderStatusEnum.AWAITING_PAYMENT,
|
|
14
|
+
OrderSupplierOrderStatusEnum.PAID,
|
|
15
|
+
OrderSupplierOrderStatusEnum.SHIPPED,
|
|
16
|
+
OrderSupplierOrderStatusEnum.DELIVERED,
|
|
17
|
+
];
|
|
18
|
+
export const SUPPLIER_ORDER_SYNCABLE_STATUSES = [
|
|
19
|
+
OrderSupplierOrderStatusEnum.PLACED,
|
|
20
|
+
OrderSupplierOrderStatusEnum.AWAITING_PAYMENT,
|
|
21
|
+
OrderSupplierOrderStatusEnum.PAID,
|
|
22
|
+
OrderSupplierOrderStatusEnum.SHIPPED,
|
|
23
|
+
];
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AbstractRequestValidator } from '../../abstract.validator.js';
|
|
2
|
+
export declare class PlaceSupplierOrderRequestValidator extends AbstractRequestValidator {
|
|
3
|
+
recipientBirthday?: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class RegisterSupplierOrderRequestValidator extends AbstractRequestValidator {
|
|
6
|
+
externalOrderId: string;
|
|
7
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
import * as class_validator_1 from "class-validator";
|
|
12
|
+
import * as abstract_validator_1 from '../../abstract.validator.js';
|
|
13
|
+
import * as shipping_request_validator_1 from '../sale/index.js';
|
|
14
|
+
export class PlaceSupplierOrderRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
15
|
+
recipientBirthday;
|
|
16
|
+
}
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, shipping_request_validator_1.IsBirthday)(),
|
|
19
|
+
(0, class_validator_1.IsOptional)(),
|
|
20
|
+
__metadata("design:type", String)
|
|
21
|
+
], PlaceSupplierOrderRequestValidator.prototype, "recipientBirthday", void 0);
|
|
22
|
+
export class RegisterSupplierOrderRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
23
|
+
externalOrderId;
|
|
24
|
+
}
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, class_validator_1.Matches)(/^\d{6,25}$/, { message: 'externalOrderId must be the numeric supplier order id' }),
|
|
27
|
+
__metadata("design:type", String)
|
|
28
|
+
], RegisterSupplierOrderRequestValidator.prototype, "externalOrderId", void 0);
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface CheckoutQuoteShipping {
|
|
2
|
+
available: boolean;
|
|
3
|
+
amount: number;
|
|
4
|
+
method?: string;
|
|
5
|
+
deliveryDays?: {
|
|
6
|
+
max?: number;
|
|
7
|
+
min?: number;
|
|
8
|
+
};
|
|
9
|
+
issue?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface CheckoutQuoteItem {
|
|
12
|
+
product: string;
|
|
13
|
+
variant: string;
|
|
14
|
+
quantity: number;
|
|
15
|
+
unitPrice: number;
|
|
16
|
+
total: number;
|
|
17
|
+
shipping: CheckoutQuoteShipping;
|
|
18
|
+
}
|
|
19
|
+
export interface CheckoutQuote {
|
|
20
|
+
currency: string;
|
|
21
|
+
available: boolean;
|
|
22
|
+
issues: string[];
|
|
23
|
+
items: CheckoutQuoteItem[];
|
|
24
|
+
subtotal: number;
|
|
25
|
+
shipping: number;
|
|
26
|
+
total: number;
|
|
27
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { FinancePaymentStatusEnum } from '../../finance/payment';
|
|
2
|
+
import type { OrderFulfillmentActionEnum, OrderFulfillmentStageEnum } from './fulfillment.enum.js';
|
|
3
|
+
export interface OrderSaleSummary {
|
|
4
|
+
currency: string;
|
|
5
|
+
revenue: {
|
|
6
|
+
subtotal: number;
|
|
7
|
+
shipping: number;
|
|
8
|
+
total: number;
|
|
9
|
+
};
|
|
10
|
+
costs: {
|
|
11
|
+
products: number;
|
|
12
|
+
freight: number;
|
|
13
|
+
total: number;
|
|
14
|
+
};
|
|
15
|
+
profit: number;
|
|
16
|
+
margin: number | null;
|
|
17
|
+
payment: {
|
|
18
|
+
status: FinancePaymentStatusEnum | null;
|
|
19
|
+
};
|
|
20
|
+
fulfillment: {
|
|
21
|
+
stage: OrderFulfillmentStageEnum;
|
|
22
|
+
};
|
|
23
|
+
nextActions: OrderFulfillmentActionEnum[];
|
|
24
|
+
supplierOrdering: {
|
|
25
|
+
enabled: boolean;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export interface OrderBuyerFulfillment {
|
|
29
|
+
stage: OrderFulfillmentStageEnum;
|
|
30
|
+
trackingNumbers: string[];
|
|
31
|
+
carrier?: string;
|
|
32
|
+
trackingUrl?: string;
|
|
33
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare enum OrderFulfillmentStageEnum {
|
|
2
|
+
AWAITING_PAYMENT = "AWAITING_PAYMENT",
|
|
3
|
+
TO_ORDER = "TO_ORDER",
|
|
4
|
+
ORDERED = "ORDERED",
|
|
5
|
+
SHIPPED = "SHIPPED",
|
|
6
|
+
DELIVERED = "DELIVERED",
|
|
7
|
+
CANCELLED = "CANCELLED"
|
|
8
|
+
}
|
|
9
|
+
export declare enum OrderFulfillmentActionEnum {
|
|
10
|
+
CONFIRM_PAYMENT = "CONFIRM_PAYMENT",
|
|
11
|
+
PROCURE = "PROCURE",
|
|
12
|
+
PLACE_SUPPLIER_ORDER = "PLACE_SUPPLIER_ORDER",
|
|
13
|
+
REGISTER_SUPPLIER_ORDER = "REGISTER_SUPPLIER_ORDER",
|
|
14
|
+
PAY_SUPPLIER_ORDER = "PAY_SUPPLIER_ORDER",
|
|
15
|
+
SYNC_SUPPLIER_ORDER = "SYNC_SUPPLIER_ORDER",
|
|
16
|
+
NONE = "NONE"
|
|
17
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export var OrderFulfillmentStageEnum;
|
|
2
|
+
(function (OrderFulfillmentStageEnum) {
|
|
3
|
+
OrderFulfillmentStageEnum["AWAITING_PAYMENT"] = "AWAITING_PAYMENT";
|
|
4
|
+
OrderFulfillmentStageEnum["TO_ORDER"] = "TO_ORDER";
|
|
5
|
+
OrderFulfillmentStageEnum["ORDERED"] = "ORDERED";
|
|
6
|
+
OrderFulfillmentStageEnum["SHIPPED"] = "SHIPPED";
|
|
7
|
+
OrderFulfillmentStageEnum["DELIVERED"] = "DELIVERED";
|
|
8
|
+
OrderFulfillmentStageEnum["CANCELLED"] = "CANCELLED";
|
|
9
|
+
})(OrderFulfillmentStageEnum || (OrderFulfillmentStageEnum = {}));
|
|
10
|
+
export var OrderFulfillmentActionEnum;
|
|
11
|
+
(function (OrderFulfillmentActionEnum) {
|
|
12
|
+
OrderFulfillmentActionEnum["CONFIRM_PAYMENT"] = "CONFIRM_PAYMENT";
|
|
13
|
+
OrderFulfillmentActionEnum["PROCURE"] = "PROCURE";
|
|
14
|
+
OrderFulfillmentActionEnum["PLACE_SUPPLIER_ORDER"] = "PLACE_SUPPLIER_ORDER";
|
|
15
|
+
OrderFulfillmentActionEnum["REGISTER_SUPPLIER_ORDER"] = "REGISTER_SUPPLIER_ORDER";
|
|
16
|
+
OrderFulfillmentActionEnum["PAY_SUPPLIER_ORDER"] = "PAY_SUPPLIER_ORDER";
|
|
17
|
+
OrderFulfillmentActionEnum["SYNC_SUPPLIER_ORDER"] = "SYNC_SUPPLIER_ORDER";
|
|
18
|
+
OrderFulfillmentActionEnum["NONE"] = "NONE";
|
|
19
|
+
})(OrderFulfillmentActionEnum || (OrderFulfillmentActionEnum = {}));
|
|
@@ -8,3 +8,8 @@ export * from './procurement';
|
|
|
8
8
|
export * from './procurement.request.validator';
|
|
9
9
|
export * from './shipping.request.validator';
|
|
10
10
|
export * from './checkout.request.validator';
|
|
11
|
+
export * from './payment.confirm.request.validator';
|
|
12
|
+
export * from './fulfillment.enum';
|
|
13
|
+
export * from './fulfillment';
|
|
14
|
+
export * from './quote.request.validator';
|
|
15
|
+
export * from './checkout';
|
package/dist/order/sale/index.js
CHANGED
|
@@ -5,3 +5,6 @@ export * from './item.request.validator.js';
|
|
|
5
5
|
export * from './procurement.request.validator.js';
|
|
6
6
|
export * from './shipping.request.validator.js';
|
|
7
7
|
export * from './checkout.request.validator.js';
|
|
8
|
+
export * from './payment.confirm.request.validator.js';
|
|
9
|
+
export * from './fulfillment.enum.js';
|
|
10
|
+
export * from './quote.request.validator.js';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { FinancePaymentMethodEnum } from '../../finance/payment';
|
|
2
|
+
import { AbstractRequestValidator } from '../../abstract.validator.js';
|
|
3
|
+
export declare class ConfirmSalePaymentRequestValidator extends AbstractRequestValidator {
|
|
4
|
+
method: FinancePaymentMethodEnum;
|
|
5
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
import * as class_validator_1 from "class-validator";
|
|
12
|
+
import * as payment_enum_1 from '../../finance/payment/index.js';
|
|
13
|
+
import * as abstract_validator_1 from '../../abstract.validator.js';
|
|
14
|
+
export class ConfirmSalePaymentRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
15
|
+
method;
|
|
16
|
+
}
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, class_validator_1.IsEnum)(payment_enum_1.FinancePaymentMethodEnum),
|
|
19
|
+
(0, class_validator_1.IsDefined)(),
|
|
20
|
+
__metadata("design:type", String)
|
|
21
|
+
], ConfirmSalePaymentRequestValidator.prototype, "method", void 0);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AbstractRequestValidator } from '../../abstract.validator.js';
|
|
2
|
+
import { CheckoutItemRequestValidator } from './checkout.request.validator.js';
|
|
3
|
+
export declare class CheckoutQuoteDestinationRequestValidator extends AbstractRequestValidator {
|
|
4
|
+
postalCode: string;
|
|
5
|
+
country: string;
|
|
6
|
+
}
|
|
7
|
+
export declare class CheckoutQuoteRequestValidator extends AbstractRequestValidator {
|
|
8
|
+
items: CheckoutItemRequestValidator[];
|
|
9
|
+
destination: CheckoutQuoteDestinationRequestValidator;
|
|
10
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
import * as class_transformer_1 from "class-transformer";
|
|
12
|
+
import * as class_validator_1 from "class-validator";
|
|
13
|
+
import * as abstract_validator_1 from '../../abstract.validator.js';
|
|
14
|
+
import * as checkout_request_validator_1 from './checkout.request.validator.js';
|
|
15
|
+
export class CheckoutQuoteDestinationRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
16
|
+
postalCode;
|
|
17
|
+
country;
|
|
18
|
+
}
|
|
19
|
+
__decorate([
|
|
20
|
+
(0, class_validator_1.Matches)(/^\d{8}$/, { message: '$property must be a CEP with 8 digits' }),
|
|
21
|
+
(0, class_transformer_1.Transform)(({ value }) => (typeof value === 'string' ? value.replace(/\D/g, '') : value)),
|
|
22
|
+
__metadata("design:type", String)
|
|
23
|
+
], CheckoutQuoteDestinationRequestValidator.prototype, "postalCode", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_validator_1.IsISO31661Alpha2)(),
|
|
26
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
27
|
+
(0, class_transformer_1.Transform)(({ value }) => (typeof value === 'string' ? value.trim().toUpperCase() : value)),
|
|
28
|
+
__metadata("design:type", String)
|
|
29
|
+
], CheckoutQuoteDestinationRequestValidator.prototype, "country", void 0);
|
|
30
|
+
export class CheckoutQuoteRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
31
|
+
items = [];
|
|
32
|
+
destination = new CheckoutQuoteDestinationRequestValidator();
|
|
33
|
+
}
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, class_validator_1.IsArray)(),
|
|
36
|
+
(0, class_validator_1.ArrayNotEmpty)(),
|
|
37
|
+
(0, class_validator_1.ArrayMaxSize)(50),
|
|
38
|
+
(0, class_transformer_1.Type)(() => checkout_request_validator_1.CheckoutItemRequestValidator),
|
|
39
|
+
(0, class_validator_1.ValidateNested)({ each: true }),
|
|
40
|
+
__metadata("design:type", Array)
|
|
41
|
+
], CheckoutQuoteRequestValidator.prototype, "items", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
(0, class_validator_1.IsDefined)(),
|
|
44
|
+
(0, class_transformer_1.Type)(() => CheckoutQuoteDestinationRequestValidator),
|
|
45
|
+
(0, class_validator_1.ValidateNested)(),
|
|
46
|
+
__metadata("design:type", Object)
|
|
47
|
+
], CheckoutQuoteRequestValidator.prototype, "destination", void 0);
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import { Schema as MongoSchema } from 'mongoose';
|
|
1
2
|
export declare class OrderSaleShippingRecipientEntity {
|
|
2
3
|
name: string;
|
|
3
4
|
email: string;
|
|
4
5
|
phone: string;
|
|
5
6
|
document: string;
|
|
7
|
+
birthday?: string;
|
|
6
8
|
}
|
|
7
|
-
export declare const OrderSaleShippingRecipientSchema:
|
|
9
|
+
export declare const OrderSaleShippingRecipientSchema: MongoSchema<OrderSaleShippingRecipientEntity, import("mongoose").Model<OrderSaleShippingRecipientEntity, any, any, any, import("mongoose").Document<unknown, any, OrderSaleShippingRecipientEntity, any, {}> & OrderSaleShippingRecipientEntity & {
|
|
8
10
|
_id: import("mongoose").Types.ObjectId;
|
|
9
11
|
} & {
|
|
10
12
|
__v: number;
|
|
@@ -23,7 +25,7 @@ export declare class OrderSaleShippingAddressEntity {
|
|
|
23
25
|
state: string;
|
|
24
26
|
country: string;
|
|
25
27
|
}
|
|
26
|
-
export declare const OrderSaleShippingAddressSchema:
|
|
28
|
+
export declare const OrderSaleShippingAddressSchema: MongoSchema<OrderSaleShippingAddressEntity, import("mongoose").Model<OrderSaleShippingAddressEntity, any, any, any, import("mongoose").Document<unknown, any, OrderSaleShippingAddressEntity, any, {}> & OrderSaleShippingAddressEntity & {
|
|
27
29
|
_id: import("mongoose").Types.ObjectId;
|
|
28
30
|
} & {
|
|
29
31
|
__v: number;
|
|
@@ -32,11 +34,42 @@ export declare const OrderSaleShippingAddressSchema: import("mongoose").Schema<O
|
|
|
32
34
|
} & {
|
|
33
35
|
__v: number;
|
|
34
36
|
}>;
|
|
37
|
+
export declare class OrderSaleShippingDaysEntity {
|
|
38
|
+
min?: number;
|
|
39
|
+
max?: number;
|
|
40
|
+
}
|
|
41
|
+
export declare const OrderSaleShippingDaysSchema: MongoSchema<OrderSaleShippingDaysEntity, import("mongoose").Model<OrderSaleShippingDaysEntity, any, any, any, import("mongoose").Document<unknown, any, OrderSaleShippingDaysEntity, any, {}> & OrderSaleShippingDaysEntity & {
|
|
42
|
+
_id: import("mongoose").Types.ObjectId;
|
|
43
|
+
} & {
|
|
44
|
+
__v: number;
|
|
45
|
+
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, OrderSaleShippingDaysEntity, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<OrderSaleShippingDaysEntity>, {}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & import("mongoose").FlatRecord<OrderSaleShippingDaysEntity> & {
|
|
46
|
+
_id: import("mongoose").Types.ObjectId;
|
|
47
|
+
} & {
|
|
48
|
+
__v: number;
|
|
49
|
+
}>;
|
|
50
|
+
export declare class OrderSaleShippingLineEntity {
|
|
51
|
+
variant: string;
|
|
52
|
+
amount: number;
|
|
53
|
+
method?: string;
|
|
54
|
+
deliveryDays?: OrderSaleShippingDaysEntity;
|
|
55
|
+
}
|
|
56
|
+
export declare const OrderSaleShippingLineSchema: MongoSchema<OrderSaleShippingLineEntity, import("mongoose").Model<OrderSaleShippingLineEntity, any, any, any, import("mongoose").Document<unknown, any, OrderSaleShippingLineEntity, any, {}> & OrderSaleShippingLineEntity & {
|
|
57
|
+
_id: import("mongoose").Types.ObjectId;
|
|
58
|
+
} & {
|
|
59
|
+
__v: number;
|
|
60
|
+
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, OrderSaleShippingLineEntity, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<OrderSaleShippingLineEntity>, {}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & import("mongoose").FlatRecord<OrderSaleShippingLineEntity> & {
|
|
61
|
+
_id: import("mongoose").Types.ObjectId;
|
|
62
|
+
} & {
|
|
63
|
+
__v: number;
|
|
64
|
+
}>;
|
|
35
65
|
export declare class OrderSaleShippingEntity {
|
|
36
66
|
recipient: OrderSaleShippingRecipientEntity;
|
|
37
67
|
address: OrderSaleShippingAddressEntity;
|
|
68
|
+
fee?: number;
|
|
69
|
+
quotedAt?: Date;
|
|
70
|
+
lines?: OrderSaleShippingLineEntity[];
|
|
38
71
|
}
|
|
39
|
-
export declare const OrderSaleShippingSchema:
|
|
72
|
+
export declare const OrderSaleShippingSchema: MongoSchema<OrderSaleShippingEntity, import("mongoose").Model<OrderSaleShippingEntity, any, any, any, import("mongoose").Document<unknown, any, OrderSaleShippingEntity, any, {}> & OrderSaleShippingEntity & {
|
|
40
73
|
_id: import("mongoose").Types.ObjectId;
|
|
41
74
|
} & {
|
|
42
75
|
__v: number;
|
|
@@ -3,8 +3,8 @@ import * as sale_enum_1 from './sale.enum.js';
|
|
|
3
3
|
|
|
4
4
|
export class OrderSaleTransition extends AbstractTransition {
|
|
5
5
|
$states = {
|
|
6
|
-
[sale_enum_1.OrderSaleStatusEnum.OPEN]: [],
|
|
7
|
-
[sale_enum_1.OrderSaleStatusEnum.IN_PROGRESS]: [],
|
|
6
|
+
[sale_enum_1.OrderSaleStatusEnum.OPEN]: [sale_enum_1.OrderSaleStatusEnum.IN_PROGRESS, sale_enum_1.OrderSaleStatusEnum.CANCELLED],
|
|
7
|
+
[sale_enum_1.OrderSaleStatusEnum.IN_PROGRESS]: [sale_enum_1.OrderSaleStatusEnum.COMPLETED, sale_enum_1.OrderSaleStatusEnum.CANCELLED],
|
|
8
8
|
[sale_enum_1.OrderSaleStatusEnum.COMPLETED]: [],
|
|
9
9
|
[sale_enum_1.OrderSaleStatusEnum.CANCELLED]: [],
|
|
10
10
|
[sale_enum_1.OrderSaleStatusEnum.RETURNED]: [],
|
|
@@ -2,11 +2,16 @@ import { AbstractRequestValidator } from '../../abstract.validator.js';
|
|
|
2
2
|
import type { OrderSaleShippingEntity } from './sale.shipping.entity.js';
|
|
3
3
|
export declare const BRAZIL_STATES: string[];
|
|
4
4
|
export declare function isCpf(value: unknown): boolean;
|
|
5
|
+
export declare const BIRTHDAY_MIN_AGE = 16;
|
|
6
|
+
export declare const BIRTHDAY_MAX_AGE = 120;
|
|
7
|
+
export declare function isBirthday(value: unknown, today?: Date): boolean;
|
|
8
|
+
export declare function IsBirthday(): PropertyDecorator;
|
|
5
9
|
export declare class SaleShippingRecipientRequestValidator extends AbstractRequestValidator {
|
|
6
10
|
name: string;
|
|
7
11
|
email: string;
|
|
8
12
|
phone: string;
|
|
9
13
|
document: string;
|
|
14
|
+
birthday?: string;
|
|
10
15
|
}
|
|
11
16
|
export declare class SaleShippingAddressRequestValidator extends AbstractRequestValidator {
|
|
12
17
|
postalCode: string;
|
|
@@ -65,11 +65,51 @@ function IsCpf() {
|
|
|
65
65
|
},
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
|
+
export const BIRTHDAY_MIN_AGE = 16;
|
|
69
|
+
export const BIRTHDAY_MAX_AGE = 120;
|
|
70
|
+
export function isBirthday(value, today = new Date()) {
|
|
71
|
+
const [, y, m, d] = (typeof value === 'string' && value.match(/^(\d{4})-(\d{2})-(\d{2})$/)) || [];
|
|
72
|
+
if (!y)
|
|
73
|
+
return false;
|
|
74
|
+
const [year, month, day] = [Number(y), Number(m), Number(d)];
|
|
75
|
+
const date = new Date(Date.UTC(year, month - 1, day));
|
|
76
|
+
if (date.getUTCFullYear() !== year ||
|
|
77
|
+
date.getUTCMonth() !== month - 1 ||
|
|
78
|
+
date.getUTCDate() !== day) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
const birthdayPassed = today.getUTCMonth() > month - 1 ||
|
|
82
|
+
(today.getUTCMonth() === month - 1 && today.getUTCDate() >= day);
|
|
83
|
+
const age = today.getUTCFullYear() - year - (birthdayPassed ? 0 : 1);
|
|
84
|
+
return age >= BIRTHDAY_MIN_AGE && age <= BIRTHDAY_MAX_AGE;
|
|
85
|
+
}
|
|
86
|
+
export function IsBirthday() {
|
|
87
|
+
return (0, class_validator_1.ValidateBy)({
|
|
88
|
+
name: 'isBirthday',
|
|
89
|
+
validator: {
|
|
90
|
+
defaultMessage: () => `$property must be a real date (YYYY-MM-DD) of someone aged ${BIRTHDAY_MIN_AGE} to ${BIRTHDAY_MAX_AGE}`,
|
|
91
|
+
validate: (value) => isBirthday(value),
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
function BirthdayForBrazil() {
|
|
96
|
+
return (0, class_validator_1.ValidateBy)({
|
|
97
|
+
name: 'birthdayForBrazil',
|
|
98
|
+
validator: {
|
|
99
|
+
defaultMessage: () => 'recipient.birthday is required for deliveries to Brazil',
|
|
100
|
+
validate: (recipient, args) => {
|
|
101
|
+
const { address } = args.object;
|
|
102
|
+
return address?.country !== 'BR' || Boolean(recipient?.birthday);
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
});
|
|
106
|
+
}
|
|
68
107
|
export class SaleShippingRecipientRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
69
108
|
name;
|
|
70
109
|
email;
|
|
71
110
|
phone;
|
|
72
111
|
document;
|
|
112
|
+
birthday;
|
|
73
113
|
}
|
|
74
114
|
__decorate([
|
|
75
115
|
(0, class_validator_1.IsString)(),
|
|
@@ -93,6 +133,12 @@ __decorate([
|
|
|
93
133
|
(0, class_transformer_1.Transform)(digits),
|
|
94
134
|
__metadata("design:type", String)
|
|
95
135
|
], SaleShippingRecipientRequestValidator.prototype, "document", void 0);
|
|
136
|
+
__decorate([
|
|
137
|
+
IsBirthday(),
|
|
138
|
+
(0, class_validator_1.IsOptional)(),
|
|
139
|
+
(0, class_transformer_1.Transform)(trim),
|
|
140
|
+
__metadata("design:type", String)
|
|
141
|
+
], SaleShippingRecipientRequestValidator.prototype, "birthday", void 0);
|
|
96
142
|
export class SaleShippingAddressRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
97
143
|
postalCode;
|
|
98
144
|
street;
|
|
@@ -164,6 +210,7 @@ export class SaleShippingRequestValidator extends abstract_validator_1.AbstractR
|
|
|
164
210
|
}
|
|
165
211
|
__decorate([
|
|
166
212
|
(0, class_validator_1.IsDefined)(),
|
|
213
|
+
BirthdayForBrazil(),
|
|
167
214
|
(0, class_transformer_1.Type)(() => SaleShippingRecipientRequestValidator),
|
|
168
215
|
(0, class_validator_1.ValidateNested)(),
|
|
169
216
|
__metadata("design:type", Object)
|