@merkaly/api 0.12.0 → 0.14.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/address.d.ts +17 -0
- package/dist/integration/supplier/index.d.ts +2 -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 +59 -0
- package/dist/order/sale/fulfillment.enum.d.ts +34 -0
- package/dist/order/sale/fulfillment.enum.js +38 -0
- package/dist/order/sale/index.d.ts +6 -0
- package/dist/order/sale/index.js +4 -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/procurement.d.ts +1 -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 +17 -0
- package/dist/order/sale/shipping.request.validator.js +66 -2
- package/dist/order/sale/shipping.update.request.validator.d.ts +22 -0
- package/dist/order/sale/shipping.update.request.validator.js +139 -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,17 @@
|
|
|
1
|
+
export interface SupplierAddressCity {
|
|
2
|
+
name: string;
|
|
3
|
+
}
|
|
4
|
+
export interface SupplierAddressState {
|
|
5
|
+
code: string;
|
|
6
|
+
name: string;
|
|
7
|
+
cities: SupplierAddressCity[];
|
|
8
|
+
}
|
|
9
|
+
export interface SupplierAddressStatesResponse {
|
|
10
|
+
country: string;
|
|
11
|
+
states: Omit<SupplierAddressState, 'cities'>[];
|
|
12
|
+
}
|
|
13
|
+
export interface SupplierAddressCitiesResponse {
|
|
14
|
+
country: string;
|
|
15
|
+
state: string;
|
|
16
|
+
cities: SupplierAddressCity[];
|
|
17
|
+
}
|
|
@@ -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,59 @@
|
|
|
1
|
+
import type { FinancePaymentStatusEnum } from '../../finance/payment';
|
|
2
|
+
import type { OrderFulfillmentActionEnum, OrderFulfillmentStageEnum, OrderSaleCostSourceEnum, OrderSaleHistoryEventEnum } from './fulfillment.enum.js';
|
|
3
|
+
import type { OrderSupplierOrderStatusEnum } from '../purchase';
|
|
4
|
+
export interface OrderSaleCosts {
|
|
5
|
+
products: number;
|
|
6
|
+
freight: number;
|
|
7
|
+
total: number;
|
|
8
|
+
}
|
|
9
|
+
export interface OrderSaleEstimate extends OrderSaleCosts {
|
|
10
|
+
profit: number;
|
|
11
|
+
margin: number | null;
|
|
12
|
+
}
|
|
13
|
+
export interface OrderSaleItemSummary {
|
|
14
|
+
item: string;
|
|
15
|
+
variant: string | null;
|
|
16
|
+
quantity: number;
|
|
17
|
+
unitPrice: number;
|
|
18
|
+
unitCost: number;
|
|
19
|
+
total: number;
|
|
20
|
+
cost: number;
|
|
21
|
+
profit: number;
|
|
22
|
+
}
|
|
23
|
+
export interface OrderSaleHistoryEntry {
|
|
24
|
+
at: string;
|
|
25
|
+
type: OrderSaleHistoryEventEnum;
|
|
26
|
+
purchase?: string;
|
|
27
|
+
status?: OrderSupplierOrderStatusEnum;
|
|
28
|
+
}
|
|
29
|
+
export interface OrderSaleSummary {
|
|
30
|
+
currency: string;
|
|
31
|
+
revenue: {
|
|
32
|
+
subtotal: number;
|
|
33
|
+
shipping: number;
|
|
34
|
+
total: number;
|
|
35
|
+
};
|
|
36
|
+
costs: OrderSaleCosts & {
|
|
37
|
+
source: OrderSaleCostSourceEnum;
|
|
38
|
+
};
|
|
39
|
+
profit: number;
|
|
40
|
+
margin: number | null;
|
|
41
|
+
estimate: OrderSaleEstimate;
|
|
42
|
+
variance: number | null;
|
|
43
|
+
items: OrderSaleItemSummary[];
|
|
44
|
+
history: OrderSaleHistoryEntry[];
|
|
45
|
+
warnings: string[];
|
|
46
|
+
payment: {
|
|
47
|
+
status: FinancePaymentStatusEnum | null;
|
|
48
|
+
};
|
|
49
|
+
fulfillment: {
|
|
50
|
+
stage: OrderFulfillmentStageEnum;
|
|
51
|
+
};
|
|
52
|
+
nextActions: OrderFulfillmentActionEnum[];
|
|
53
|
+
}
|
|
54
|
+
export interface OrderBuyerFulfillment {
|
|
55
|
+
stage: OrderFulfillmentStageEnum;
|
|
56
|
+
trackingNumbers: string[];
|
|
57
|
+
carrier?: string;
|
|
58
|
+
trackingUrl?: string;
|
|
59
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
PAY_SUPPLIER_ORDER = "PAY_SUPPLIER_ORDER",
|
|
14
|
+
SYNC_SUPPLIER_ORDER = "SYNC_SUPPLIER_ORDER",
|
|
15
|
+
NONE = "NONE"
|
|
16
|
+
}
|
|
17
|
+
export declare enum OrderSaleCostSourceEnum {
|
|
18
|
+
ESTIMATED = "ESTIMATED",
|
|
19
|
+
CONFIRMED = "CONFIRMED"
|
|
20
|
+
}
|
|
21
|
+
export declare enum OrderSaleHistoryEventEnum {
|
|
22
|
+
CREATED = "CREATED",
|
|
23
|
+
PAYMENT_CONFIRMED = "PAYMENT_CONFIRMED",
|
|
24
|
+
PAYMENT_CANCELLED = "PAYMENT_CANCELLED",
|
|
25
|
+
PAYMENT_REFUNDED = "PAYMENT_REFUNDED",
|
|
26
|
+
SALE_IN_PROGRESS = "SALE_IN_PROGRESS",
|
|
27
|
+
SALE_COMPLETED = "SALE_COMPLETED",
|
|
28
|
+
SALE_CANCELLED = "SALE_CANCELLED",
|
|
29
|
+
SALE_RETURNED = "SALE_RETURNED",
|
|
30
|
+
PURCHASE_CREATED = "PURCHASE_CREATED",
|
|
31
|
+
PURCHASE_CANCELLED = "PURCHASE_CANCELLED",
|
|
32
|
+
SUPPLIER_ORDER_PLACED = "SUPPLIER_ORDER_PLACED",
|
|
33
|
+
SUPPLIER_ORDER_SYNCED = "SUPPLIER_ORDER_SYNCED"
|
|
34
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
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["PAY_SUPPLIER_ORDER"] = "PAY_SUPPLIER_ORDER";
|
|
16
|
+
OrderFulfillmentActionEnum["SYNC_SUPPLIER_ORDER"] = "SYNC_SUPPLIER_ORDER";
|
|
17
|
+
OrderFulfillmentActionEnum["NONE"] = "NONE";
|
|
18
|
+
})(OrderFulfillmentActionEnum || (OrderFulfillmentActionEnum = {}));
|
|
19
|
+
export var OrderSaleCostSourceEnum;
|
|
20
|
+
(function (OrderSaleCostSourceEnum) {
|
|
21
|
+
OrderSaleCostSourceEnum["ESTIMATED"] = "ESTIMATED";
|
|
22
|
+
OrderSaleCostSourceEnum["CONFIRMED"] = "CONFIRMED";
|
|
23
|
+
})(OrderSaleCostSourceEnum || (OrderSaleCostSourceEnum = {}));
|
|
24
|
+
export var OrderSaleHistoryEventEnum;
|
|
25
|
+
(function (OrderSaleHistoryEventEnum) {
|
|
26
|
+
OrderSaleHistoryEventEnum["CREATED"] = "CREATED";
|
|
27
|
+
OrderSaleHistoryEventEnum["PAYMENT_CONFIRMED"] = "PAYMENT_CONFIRMED";
|
|
28
|
+
OrderSaleHistoryEventEnum["PAYMENT_CANCELLED"] = "PAYMENT_CANCELLED";
|
|
29
|
+
OrderSaleHistoryEventEnum["PAYMENT_REFUNDED"] = "PAYMENT_REFUNDED";
|
|
30
|
+
OrderSaleHistoryEventEnum["SALE_IN_PROGRESS"] = "SALE_IN_PROGRESS";
|
|
31
|
+
OrderSaleHistoryEventEnum["SALE_COMPLETED"] = "SALE_COMPLETED";
|
|
32
|
+
OrderSaleHistoryEventEnum["SALE_CANCELLED"] = "SALE_CANCELLED";
|
|
33
|
+
OrderSaleHistoryEventEnum["SALE_RETURNED"] = "SALE_RETURNED";
|
|
34
|
+
OrderSaleHistoryEventEnum["PURCHASE_CREATED"] = "PURCHASE_CREATED";
|
|
35
|
+
OrderSaleHistoryEventEnum["PURCHASE_CANCELLED"] = "PURCHASE_CANCELLED";
|
|
36
|
+
OrderSaleHistoryEventEnum["SUPPLIER_ORDER_PLACED"] = "SUPPLIER_ORDER_PLACED";
|
|
37
|
+
OrderSaleHistoryEventEnum["SUPPLIER_ORDER_SYNCED"] = "SUPPLIER_ORDER_SYNCED";
|
|
38
|
+
})(OrderSaleHistoryEventEnum || (OrderSaleHistoryEventEnum = {}));
|
|
@@ -7,4 +7,10 @@ export * from './item.request.validator';
|
|
|
7
7
|
export * from './procurement';
|
|
8
8
|
export * from './procurement.request.validator';
|
|
9
9
|
export * from './shipping.request.validator';
|
|
10
|
+
export * from './shipping.update.request.validator';
|
|
10
11
|
export * from './checkout.request.validator';
|
|
12
|
+
export * from './payment.confirm.request.validator';
|
|
13
|
+
export * from './fulfillment.enum';
|
|
14
|
+
export * from './fulfillment';
|
|
15
|
+
export * from './quote.request.validator';
|
|
16
|
+
export * from './checkout';
|
package/dist/order/sale/index.js
CHANGED
|
@@ -4,4 +4,8 @@ export * from './request.validator.js';
|
|
|
4
4
|
export * from './item.request.validator.js';
|
|
5
5
|
export * from './procurement.request.validator.js';
|
|
6
6
|
export * from './shipping.request.validator.js';
|
|
7
|
+
export * from './shipping.update.request.validator.js';
|
|
7
8
|
export * from './checkout.request.validator.js';
|
|
9
|
+
export * from './payment.confirm.request.validator.js';
|
|
10
|
+
export * from './fulfillment.enum.js';
|
|
11
|
+
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]: [],
|
|
@@ -1,12 +1,29 @@
|
|
|
1
1
|
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
|
+
export declare const trim: ({ value }: {
|
|
5
|
+
value: unknown;
|
|
6
|
+
}) => unknown;
|
|
7
|
+
export declare const digits: ({ value }: {
|
|
8
|
+
value: unknown;
|
|
9
|
+
}) => unknown;
|
|
10
|
+
export declare const upper: ({ value }: {
|
|
11
|
+
value: unknown;
|
|
12
|
+
}) => unknown;
|
|
4
13
|
export declare function isCpf(value: unknown): boolean;
|
|
14
|
+
export declare function IsCpf(): PropertyDecorator;
|
|
15
|
+
export declare const BIRTHDAY_MIN_AGE = 16;
|
|
16
|
+
export declare const BIRTHDAY_MAX_AGE = 120;
|
|
17
|
+
export declare function isBirthday(value: unknown, today?: Date): boolean;
|
|
18
|
+
export declare function IsBirthday(): PropertyDecorator;
|
|
19
|
+
export declare const FULL_NAME_MESSAGE = "recipient.name must be the full name as registered in the CPF";
|
|
20
|
+
export declare function isFullName(value: unknown): boolean;
|
|
5
21
|
export declare class SaleShippingRecipientRequestValidator extends AbstractRequestValidator {
|
|
6
22
|
name: string;
|
|
7
23
|
email: string;
|
|
8
24
|
phone: string;
|
|
9
25
|
document: string;
|
|
26
|
+
birthday?: string;
|
|
10
27
|
}
|
|
11
28
|
export declare class SaleShippingAddressRequestValidator extends AbstractRequestValidator {
|
|
12
29
|
postalCode: string;
|
|
@@ -40,7 +40,7 @@ export const BRAZIL_STATES = [
|
|
|
40
40
|
'SP',
|
|
41
41
|
'TO',
|
|
42
42
|
];
|
|
43
|
-
const trim = ({ value }) =>
|
|
43
|
+
const trim = ({ value }) => typeof value === 'string' ? value.trim() : value;
|
|
44
44
|
const digits = ({ value }) => typeof value === 'string' ? value.replace(/\D/g, '') : value;
|
|
45
45
|
const upper = ({ value }) => typeof value === 'string' ? value.trim().toUpperCase() : value;
|
|
46
46
|
export function isCpf(value) {
|
|
@@ -56,7 +56,7 @@ export function isCpf(value) {
|
|
|
56
56
|
};
|
|
57
57
|
return digit(9) === Number(value[9]) && digit(10) === Number(value[10]);
|
|
58
58
|
}
|
|
59
|
-
function IsCpf() {
|
|
59
|
+
export function IsCpf() {
|
|
60
60
|
return (0, class_validator_1.ValidateBy)({
|
|
61
61
|
name: 'isCpf',
|
|
62
62
|
validator: {
|
|
@@ -65,11 +65,67 @@ 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
|
+
}
|
|
107
|
+
export const FULL_NAME_MESSAGE = 'recipient.name must be the full name as registered in the CPF';
|
|
108
|
+
export function isFullName(value) {
|
|
109
|
+
return typeof value === 'string' && value.trim().split(/\s+/).filter(Boolean).length >= 2;
|
|
110
|
+
}
|
|
111
|
+
function FullNameForBrazil() {
|
|
112
|
+
return (0, class_validator_1.ValidateBy)({
|
|
113
|
+
name: 'fullNameForBrazil',
|
|
114
|
+
validator: {
|
|
115
|
+
defaultMessage: () => FULL_NAME_MESSAGE,
|
|
116
|
+
validate: (recipient, args) => {
|
|
117
|
+
const { address } = args.object;
|
|
118
|
+
return address?.country !== 'BR' || isFullName(recipient?.name);
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
});
|
|
122
|
+
}
|
|
68
123
|
export class SaleShippingRecipientRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
69
124
|
name;
|
|
70
125
|
email;
|
|
71
126
|
phone;
|
|
72
127
|
document;
|
|
128
|
+
birthday;
|
|
73
129
|
}
|
|
74
130
|
__decorate([
|
|
75
131
|
(0, class_validator_1.IsString)(),
|
|
@@ -93,6 +149,12 @@ __decorate([
|
|
|
93
149
|
(0, class_transformer_1.Transform)(digits),
|
|
94
150
|
__metadata("design:type", String)
|
|
95
151
|
], SaleShippingRecipientRequestValidator.prototype, "document", void 0);
|
|
152
|
+
__decorate([
|
|
153
|
+
IsBirthday(),
|
|
154
|
+
(0, class_validator_1.IsOptional)(),
|
|
155
|
+
(0, class_transformer_1.Transform)(trim),
|
|
156
|
+
__metadata("design:type", String)
|
|
157
|
+
], SaleShippingRecipientRequestValidator.prototype, "birthday", void 0);
|
|
96
158
|
export class SaleShippingAddressRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
97
159
|
postalCode;
|
|
98
160
|
street;
|
|
@@ -164,6 +226,8 @@ export class SaleShippingRequestValidator extends abstract_validator_1.AbstractR
|
|
|
164
226
|
}
|
|
165
227
|
__decorate([
|
|
166
228
|
(0, class_validator_1.IsDefined)(),
|
|
229
|
+
BirthdayForBrazil(),
|
|
230
|
+
FullNameForBrazil(),
|
|
167
231
|
(0, class_transformer_1.Type)(() => SaleShippingRecipientRequestValidator),
|
|
168
232
|
(0, class_validator_1.ValidateNested)(),
|
|
169
233
|
__metadata("design:type", Object)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AbstractRequestValidator } from '../../abstract.validator.js';
|
|
2
|
+
export declare class UpdateSaleShippingRecipientRequestValidator extends AbstractRequestValidator {
|
|
3
|
+
name?: string;
|
|
4
|
+
email?: string;
|
|
5
|
+
phone?: string;
|
|
6
|
+
document?: string;
|
|
7
|
+
birthday?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class UpdateSaleShippingAddressRequestValidator extends AbstractRequestValidator {
|
|
10
|
+
postalCode?: string;
|
|
11
|
+
street?: string;
|
|
12
|
+
number?: string;
|
|
13
|
+
complement?: string | null;
|
|
14
|
+
district?: string;
|
|
15
|
+
city?: string;
|
|
16
|
+
state?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare class UpdateSaleShippingRequestValidator extends AbstractRequestValidator {
|
|
19
|
+
recipient?: UpdateSaleShippingRecipientRequestValidator;
|
|
20
|
+
address?: UpdateSaleShippingAddressRequestValidator;
|
|
21
|
+
updateCustomer?: boolean;
|
|
22
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
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 shipping_request_validator_1 from './shipping.request.validator.js';
|
|
15
|
+
const Sent = () => (0, class_validator_1.ValidateIf)((_, value) => value !== undefined);
|
|
16
|
+
const optionalText = ({ value }) => {
|
|
17
|
+
if (value === null)
|
|
18
|
+
return null;
|
|
19
|
+
if (typeof value !== 'string')
|
|
20
|
+
return value;
|
|
21
|
+
return value.trim() || null;
|
|
22
|
+
};
|
|
23
|
+
export class UpdateSaleShippingRecipientRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
24
|
+
name;
|
|
25
|
+
email;
|
|
26
|
+
phone;
|
|
27
|
+
document;
|
|
28
|
+
birthday;
|
|
29
|
+
}
|
|
30
|
+
__decorate([
|
|
31
|
+
Sent(),
|
|
32
|
+
(0, class_validator_1.IsString)(),
|
|
33
|
+
(0, class_validator_1.Length)(2, 120),
|
|
34
|
+
(0, class_transformer_1.Transform)(shipping_request_validator_1.trim),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], UpdateSaleShippingRecipientRequestValidator.prototype, "name", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
Sent(),
|
|
39
|
+
(0, class_validator_1.IsEmail)(),
|
|
40
|
+
(0, class_validator_1.Length)(3, 254),
|
|
41
|
+
(0, class_transformer_1.Transform)(({ value }) => (typeof value === 'string' ? value.trim().toLowerCase() : value)),
|
|
42
|
+
__metadata("design:type", String)
|
|
43
|
+
], UpdateSaleShippingRecipientRequestValidator.prototype, "email", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
Sent(),
|
|
46
|
+
(0, class_validator_1.Matches)(/^(55)?\d{10,11}$/, { message: '$property must be a Brazilian phone with area code' }),
|
|
47
|
+
(0, class_transformer_1.Transform)(shipping_request_validator_1.digits),
|
|
48
|
+
__metadata("design:type", String)
|
|
49
|
+
], UpdateSaleShippingRecipientRequestValidator.prototype, "phone", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
Sent(),
|
|
52
|
+
(0, shipping_request_validator_1.IsCpf)(),
|
|
53
|
+
(0, class_transformer_1.Transform)(shipping_request_validator_1.digits),
|
|
54
|
+
__metadata("design:type", String)
|
|
55
|
+
], UpdateSaleShippingRecipientRequestValidator.prototype, "document", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
Sent(),
|
|
58
|
+
(0, shipping_request_validator_1.IsBirthday)(),
|
|
59
|
+
(0, class_transformer_1.Transform)(shipping_request_validator_1.trim),
|
|
60
|
+
__metadata("design:type", String)
|
|
61
|
+
], UpdateSaleShippingRecipientRequestValidator.prototype, "birthday", void 0);
|
|
62
|
+
export class UpdateSaleShippingAddressRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
63
|
+
postalCode;
|
|
64
|
+
street;
|
|
65
|
+
number;
|
|
66
|
+
complement;
|
|
67
|
+
district;
|
|
68
|
+
city;
|
|
69
|
+
state;
|
|
70
|
+
}
|
|
71
|
+
__decorate([
|
|
72
|
+
Sent(),
|
|
73
|
+
(0, class_validator_1.Matches)(/^\d{8}$/, { message: '$property must be a CEP with 8 digits' }),
|
|
74
|
+
(0, class_transformer_1.Transform)(shipping_request_validator_1.digits),
|
|
75
|
+
__metadata("design:type", String)
|
|
76
|
+
], UpdateSaleShippingAddressRequestValidator.prototype, "postalCode", void 0);
|
|
77
|
+
__decorate([
|
|
78
|
+
Sent(),
|
|
79
|
+
(0, class_validator_1.IsString)(),
|
|
80
|
+
(0, class_validator_1.Length)(2, 200),
|
|
81
|
+
(0, class_transformer_1.Transform)(shipping_request_validator_1.trim),
|
|
82
|
+
__metadata("design:type", String)
|
|
83
|
+
], UpdateSaleShippingAddressRequestValidator.prototype, "street", void 0);
|
|
84
|
+
__decorate([
|
|
85
|
+
Sent(),
|
|
86
|
+
(0, class_validator_1.IsString)(),
|
|
87
|
+
(0, class_validator_1.Length)(1, 20),
|
|
88
|
+
(0, class_transformer_1.Transform)(shipping_request_validator_1.trim),
|
|
89
|
+
__metadata("design:type", String)
|
|
90
|
+
], UpdateSaleShippingAddressRequestValidator.prototype, "number", void 0);
|
|
91
|
+
__decorate([
|
|
92
|
+
(0, class_validator_1.IsString)(),
|
|
93
|
+
(0, class_validator_1.Length)(0, 120),
|
|
94
|
+
(0, class_validator_1.IsOptional)(),
|
|
95
|
+
(0, class_transformer_1.Transform)(optionalText),
|
|
96
|
+
__metadata("design:type", String)
|
|
97
|
+
], UpdateSaleShippingAddressRequestValidator.prototype, "complement", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
Sent(),
|
|
100
|
+
(0, class_validator_1.IsString)(),
|
|
101
|
+
(0, class_validator_1.Length)(2, 120),
|
|
102
|
+
(0, class_transformer_1.Transform)(shipping_request_validator_1.trim),
|
|
103
|
+
__metadata("design:type", String)
|
|
104
|
+
], UpdateSaleShippingAddressRequestValidator.prototype, "district", void 0);
|
|
105
|
+
__decorate([
|
|
106
|
+
Sent(),
|
|
107
|
+
(0, class_validator_1.IsString)(),
|
|
108
|
+
(0, class_validator_1.Length)(2, 120),
|
|
109
|
+
(0, class_transformer_1.Transform)(shipping_request_validator_1.trim),
|
|
110
|
+
__metadata("design:type", String)
|
|
111
|
+
], UpdateSaleShippingAddressRequestValidator.prototype, "city", void 0);
|
|
112
|
+
__decorate([
|
|
113
|
+
Sent(),
|
|
114
|
+
(0, class_validator_1.IsIn)(shipping_request_validator_1.BRAZIL_STATES, { message: '$property must be a Brazilian UF' }),
|
|
115
|
+
(0, class_transformer_1.Transform)(shipping_request_validator_1.upper),
|
|
116
|
+
__metadata("design:type", String)
|
|
117
|
+
], UpdateSaleShippingAddressRequestValidator.prototype, "state", void 0);
|
|
118
|
+
export class UpdateSaleShippingRequestValidator extends abstract_validator_1.AbstractRequestValidator {
|
|
119
|
+
recipient;
|
|
120
|
+
address;
|
|
121
|
+
updateCustomer;
|
|
122
|
+
}
|
|
123
|
+
__decorate([
|
|
124
|
+
(0, class_validator_1.IsOptional)(),
|
|
125
|
+
(0, class_transformer_1.Type)(() => UpdateSaleShippingRecipientRequestValidator),
|
|
126
|
+
(0, class_validator_1.ValidateNested)(),
|
|
127
|
+
__metadata("design:type", UpdateSaleShippingRecipientRequestValidator)
|
|
128
|
+
], UpdateSaleShippingRequestValidator.prototype, "recipient", void 0);
|
|
129
|
+
__decorate([
|
|
130
|
+
(0, class_validator_1.IsOptional)(),
|
|
131
|
+
(0, class_transformer_1.Type)(() => UpdateSaleShippingAddressRequestValidator),
|
|
132
|
+
(0, class_validator_1.ValidateNested)(),
|
|
133
|
+
__metadata("design:type", UpdateSaleShippingAddressRequestValidator)
|
|
134
|
+
], UpdateSaleShippingRequestValidator.prototype, "address", void 0);
|
|
135
|
+
__decorate([
|
|
136
|
+
(0, class_validator_1.IsBoolean)(),
|
|
137
|
+
(0, class_validator_1.IsOptional)(),
|
|
138
|
+
__metadata("design:type", Boolean)
|
|
139
|
+
], UpdateSaleShippingRequestValidator.prototype, "updateCustomer", void 0);
|