@chevre/domain
Version:
Chevre Domain Library for Node.js
49 lines (48 loc) • 2.71 kB
TypeScript
import * as factory from '../../../../factory';
import { placeOrder as PlaceOrderFactory } from '../../../../factory/transaction';
export type IAcceptPayAction = Pick<factory.action.accept.pay.IAction, 'object' | 'result' | 'endDate'>;
export type IAuthorizeEventServiceOffer = factory.action.authorize.offer.eventService.IAction;
export type IAuthorizeProductOffer = factory.action.authorize.offer.product.IAction;
export type IAuthorizeMoneyTransferOffer = factory.action.authorize.offer.moneyTransfer.IAction;
export type IAuthorizePaymentAction = Pick<factory.action.authorize.paymentMethod.any.IAction, 'id' | 'result' | 'endDate' | 'instrument'> & {
object: Pick<factory.action.authorize.paymentMethod.any.IObject, 'typeOf'>;
};
export type IPayTransaction = Pick<factory.assetTransaction.pay.ITransaction, 'object'>;
/**
* 取引が確定可能な状態かどうかをチェックする
*/
export declare function validateTransaction(transaction: Pick<factory.transaction.placeOrder.ITransaction, 'id' | 'object'>, acceptPayActions: IAcceptPayAction[], authorizePaymentActions: IAuthorizePaymentAction[], authorizeEventServiceOfferActions: Pick<IAuthorizeEventServiceOffer, 'id' | 'result'>[], authorizeMoneyTansferActions: Pick<IAuthorizeMoneyTransferOffer, 'id' | 'result'>[], authorizeProductOfferActions: Pick<IAuthorizeProductOffer, 'id' | 'result'>[], eventReservationAcceptedOffers: factory.order.IAcceptedOffer<factory.order.IReservation>[], payTransactions: IPayTransaction[], customer: factory.order.ICustomer): void;
export type IOrderURLGenerator = (order: factory.order.IOrder) => string;
/**
* 注文オファー数検証
*/
export declare function validateAcceptedOffers(params: {
result: {
order: PlaceOrderFactory.IResultOrderParams;
};
acceptedOffers: factory.order.IAcceptedOffer<factory.order.IItemOffered>[];
}): void;
export declare function validateOrderedItem(params: {
order: Pick<factory.order.IOrder, 'orderedItem'>;
result: {
order: PlaceOrderFactory.IResultOrderParams;
};
}): void;
export declare function validatePaymentMethods(params: {
order: {
paymentMethods: factory.order.IReferencedInvoice[];
};
}, options: {
/**
* 注文における最大CreditCardIF決済方法数
*/
maxNumCreditCardPaymentMethod: number;
}): void;
/**
* 興行オファー適用条件確認
*/
export declare function validateEventOffers(params: {
order: Pick<factory.transaction.placeOrder.IOrderAsResult, 'price'>;
paymentMethods: factory.order.IReferencedInvoice[];
authorizeEventServiceOfferActions: Pick<IAuthorizeEventServiceOffer, 'id' | 'instrument' | 'object' | 'result'>[];
}): void;