import { IParticipantAsWebApplication, IParticipantAsPerson, IAction as IBaseAction, IAttributes as IBaseAttributes } from '../../../action'; import { ActionType } from '../../../actionType'; import { OrganizationType } from '../../../organizationType'; import { IMovieTicketPaymentCard, IMovieTicketServiceOutput } from '../../../paymentMethod/paymentCard/movieTicket'; import { IMkknInfo, IPurchaseNumberAuthIn, IPurchaseNumberAuthResult, IPurchaseNumberInfo, IRecipe, IYkknInfo } from '../../../recipe/checkMovieTicket'; import { TransactionType } from '../../../transactionType'; import { IPaymentService as IPaymentServiceAsPayActionObject } from '../../trade/pay'; export { IMkknInfo, IYkknInfo, IPurchaseNumberInfo, IPurchaseNumberAuthIn, IPurchaseNumberAuthResult, IRecipe }; export type IAgent = IParticipantAsWebApplication | IParticipantAsPerson; /** * 認証対象の決済カード */ export type IMovieTicket = Pick & { serviceOutput: Pick; }; export interface IPaymentService extends Pick { /** * 販売者 */ seller: { typeOf: OrganizationType.Corporation; id: string; }; movieTickets: IMovieTicket[]; paymentMethod: { /** * 決済方法区分 */ typeOf: string; }; } export type IObject = [IPaymentService]; export interface IResult { } export type IError = any; export interface IPurpose { typeOf: TransactionType.PlaceOrder; id: string; } export interface IAttributes extends Pick, 'agent' | 'error' | 'instrument' | 'object' | 'potentialActions' | 'purpose' | 'result' | 'project' | 'sameAs' | 'typeOf'> { agent: IAgent; object: IObject; purpose?: IPurpose; } /** * 決済カード認証アクション */ export type IAction = IBaseAction;