UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

49 lines (48 loc) 2.71 kB
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;