import { IParticipantAsProject, IAction as IBaseAction, IAttributes as IBaseAttributes } from '../action'; import { ActionType } from '../actionType'; import { AssetTransactionType } from '../assetTransactionType'; import { IOrder } from '../order'; import { IAvailableReservationStatusType } from '../reservation'; import { IReservationForLegacy as IEventReservationFor } from '../reservation/event'; import { ReservationType } from '../reservationType'; import { ITransaction as IPlaceOrder } from '../transaction/placeOrder'; export type IAgent = IParticipantAsProject; export type IReservationFor = Pick & { optimized: boolean; }; export interface IObject { reservationFor: IReservationFor; reservationNumber: string; reservationStatus: IAvailableReservationStatusType; typeOf: ReservationType.ReservationPackage; } export interface IResult { confirmedReservationId?: string; } export interface IAssetTransactionAsReservePurpose { /** * 取引タイプ */ typeOf: AssetTransactionType.Reserve; /** * 取引ID */ id: string; } export type IPurpose = IAssetTransactionAsReservePurpose; export interface IPotentialActions { moneyTransfer?: never; } export type IOrderAsInstrument = Pick; export type IPlaceOrderAsInstrument = Pick; /** * 興行オファーチケット */ export interface ITicketAsInstrument { ticketToken: string; typeOf: 'Ticket'; } export type IInstrument = IOrderAsInstrument | IPlaceOrderAsInstrument | ITicketAsInstrument; export interface IAttributes extends Pick, 'agent' | 'object' | 'potentialActions' | 'project' | 'purpose' | 'typeOf' | 'error' | 'instrument'> { agent: IAgent; potentialActions?: IPotentialActions; purpose: IPurpose; /** * add(2025-02-17~) */ instrument?: IInstrument[]; } /** * reserve action */ export type IAction = IBaseAction;