import { IParticipantAsPerson, IParticipantAsWebApplication } from '../../../action'; import { IOrder } from '../../../order'; import { PlaceType } from '../../../placeType'; import { TicketType } from '../../../reservation'; import { IReservation, IReservationForMinimized } from '../../../reservation/event'; import { IAction as IBaseAction, IAttributes as IBaseAttributes } from '../use'; export type IAgent = IParticipantAsPerson | IParticipantAsWebApplication; /** * 予約使用アクションオブジェクト * optimize(2024-05-06~) * optimize(2026-05-06~) */ export interface IReservationAsObject extends Pick { reservationFor: Pick; /** * discontinue(2026-05-06~) */ issuedThrough?: never; /** * discontinue(2026-05-06~) */ reservedTicket?: never; } export type IObject = IReservationAsObject[]; export interface IResult { } export interface ILocation { typeOf: PlaceType.Place; /** * 入場ゲートコード */ identifier: string; } export type IOrderAsInstrument = Pick; export interface ITicketAsInstrument { /** * 注文承認コード */ ticketToken?: string; typeOf: TicketType; /** * JWT * discontinue(2024-10-03~) */ token?: never; } export type IInstrument = IOrderAsInstrument | ITicketAsInstrument; export interface IAttributes extends Pick, 'agent' | 'error' | 'instrument' | 'location' | 'object' | 'project' | 'result' | 'typeOf' | 'error'> { agent: IAgent; instrument: IInstrument[]; location?: ILocation; } /** * use reservation action */ export type IAction = IBaseAction;