import { IObjectWithoutDetail, IPurpose } from '../action/authorize/paymentMethod/any'; import { IAcceptedPaymentMethodOfferAsInstrument, ILocation } from '../action/trade/pay'; import { IExtendId } from '../autoGenerated'; import { PaymentServiceType } from '../service/paymentService'; import { ITaskAttributes } from '../task'; import { TaskName } from '../taskName'; export type IInstrument = IAcceptedPaymentMethodOfferAsInstrument; export interface IData { project: { id: string; }; agent: { id: string; }; object: IObjectWithoutDetail; purpose: IPurpose; paymentServiceType: PaymentServiceType; location?: ILocation; options: { /** * アクション失敗時に即時に決済取引を中止するかどうか */ useCancelPayTransactionOnFailed: boolean; useUnlockTransactionProcess: boolean; /** * 既存決済カード認証アクション */ checkedAction: { id: string; }; }; /** * クレジットカードIFあるいは決済カードIFの場合に対応決済方法オファーを指定する */ instrument?: IInstrument[]; } export interface IAttributes extends ITaskAttributes { name: TaskName.AuthorizePayment; data: IData; } /** * 決済承認タスク */ export type ITask = IExtendId;