import { IInstrument as IReserveActionInstrument } from '../action/reserve'; import { IAgent, ISearchConditions as IBaseSearchConditions, IStartParams as IBaseStartParams, IAttributes as IBaseAttributes } from '../assetTransaction'; import { AssetTransactionType } from '../assetTransactionType'; import { IExtendId } from '../autoGenerated'; import { IMultilingualString } from '../multilingualString'; import { ICategory as IOfferCategory, IValidRateLimit } from '../offer'; import { OfferType } from '../offerType'; import { OrderType } from '../orderType'; import { PermitType } from '../permit'; import { PriceCurrency } from '../priceCurrency'; import { IPriceSpecification as ICategoryCodeChargeSpecification } from '../priceSpecification/categoryCodeChargeSpecification'; import { IPriceSpecification as ICompoundPriceSpecification } from '../priceSpecification/compoundPriceSpecification'; import { IPriceSpecification as IMovieTicketTypeChargeSpecification } from '../priceSpecification/movieTicketTypeChargeSpecification'; import { IPriceSpecification as IUnitPriceOfferPriceSpecification } from '../priceSpecification/unitPriceSpecification'; import { IServiceType, ProductType } from '../product'; import { IPropertyValue } from '../propertyValue'; import { ITicketIssuedBy, TicketType, IUnderName as IReservationUnderName, IBroker, ISeat as IReservationSeat } from '../reservation'; import { IReservation as IEventReservation, IReservationForLegacy as IEventReservationReservationFor, IReservedTicket, ISubReservation as ISubReservation4eventReservation } from '../reservation/event'; import { IReservation as IReservationPackage } from '../reservation/reservationPackage'; import { ReservationStatusType } from '../reservationStatusType'; import { ReservationType } from '../reservationType'; import { PaymentServiceType } from '../service/paymentService'; import { IUnitPriceOffer } from '../unitPriceOffer'; export { IAgent }; export type IInstrument = IReserveActionInstrument; export type IStartParamsWithoutDetail = IBaseStartParams; /** * 取引開始パラメータ */ export interface IStartParams extends IBaseStartParams { /** * add(2025-02-17~) */ instrument: IInstrument[]; } export interface IPermitIssuedThroughFaceToFace { /** * メンバーシップコード */ identifier: string; issuedThrough: { typeOf: PaymentServiceType.FaceToFace; }; typeOf: PermitType.Permit; } export interface IPermitIssuedThroughMembershipService { accessCode?: string; /** * メンバーシップコード */ identifier: string; issuedThrough: { /** * メンバーシップ発行サービスID */ id: string; typeOf: PaymentServiceType.CreditCard; }; typeOf: PermitType.Permit; } /** * チケット化された適用メンバーシップ */ export interface IProgramMembershipUsedAsTicket { ticketToken: string; typeOf: 'Ticket'; } /** * トークン化された適用メンバーシップ */ export type ITokenizedProgramMembershipUsed = string; /** * 適用メンバーシップ */ export type IAcceptedProgramMembershipUsed = IPermitIssuedThroughFaceToFace | IPermitIssuedThroughMembershipService | IProgramMembershipUsedAsTicket | ITokenizedProgramMembershipUsed; export type IAcceptedSubReservation = ISubReservation4eventReservation; export interface IEventReservatonAsItemOfferedServiceOutput { typeOf: ReservationType.EventReservation; /** * 追加特性 */ additionalProperty?: IPropertyValue[]; /** * 予約追加テキスト */ additionalTicketText?: string; programMembershipUsed?: IAcceptedProgramMembershipUsed; reservedTicket?: { /** * チケット識別子 * 指定された場合、決済カードの対象チケット識別子と関連付けされます * /^[0-9a-zA-Z]{8,16}$/ */ identifier?: string; issuedBy?: Pick; typeOf: TicketType; /** * 座席指定 */ ticketedSeat?: IReservationSeat; }; subReservation?: IAcceptedSubReservation[]; } export type IItemOfferedServiceOutput = IEventReservatonAsItemOfferedServiceOutput; /** * 受け入れられたオファーのアイテム */ export interface IAcceptedTicketOfferItemOffered { pointAward?: never; serviceOutput?: IItemOfferedServiceOutput; } export interface IAcceptedTicketOfferItemOffered4object { pointAward?: never; serviceOutput: { id: string; }; } /** * 予約取引開始時の受入アドオンオファー */ export interface IAcceptedAddOn extends Pick { /** * アドオン単価オファーID */ id?: string; priceSpecification?: { referenceQuantity?: { /** * 数量指定(2023-08-31~) * 単価オファーの基準数量で割り切れる必要あり */ value?: number; }; }; } export interface ISingleAcceptedAppliesToMovieTicket { /** * 適用決済カード識別子 */ identifier?: string; } /** * 複数承認適用決済カード * 複数指定の場合、カード識別子と決済方法区分の組み合わせで指定します */ export type IMultipleAcceptedAppliesToMovieTicket = { /** * 適用決済カード識別子 */ identifier?: string; serviceOutput?: { /** * 決済方法区分 */ typeOf?: string; }; }[]; /** * 承認適用決済カード */ export type IAcceptedAppliesToMovieTicket = ISingleAcceptedAppliesToMovieTicket | IMultipleAcceptedAppliesToMovieTicket; /** * 受け入れられたチケットオファー(詳細なし) */ export interface IAcceptedTicketOfferWithoutDetail { /** * オファーID */ id: string; /** * アイテム情報 * 予約の詳細指定など */ itemOffered?: IAcceptedTicketOfferItemOffered; /** * 受入アドオン */ addOn?: IAcceptedAddOn[]; additionalProperty?: IPropertyValue[]; priceSpecification?: { appliesToMovieTicket?: IAcceptedAppliesToMovieTicket; }; /** * オファーの含まれるサブカタログID * プロダクトのカタログがサブカタログで構成されていない場合は無視される * 明示的に指定しない場合、プロダクトのひとつめのカタログに含まれるサブカタログで自動的にフィルターされる */ includedInDataCatalog?: { /** * サブカタログID */ id: string; }; } /** * 受け入れられたチケットオファー */ export interface IAcceptedOffer4object { id: string; itemOffered: IAcceptedTicketOfferItemOffered4object; } export interface IOrderAsReservePurpose { confirmationNumber: string; orderNumber: string; typeOf: OrderType; } export interface IPotentialActionsParams { reserve?: { purpose?: IOrderAsReservePurpose; }; } /** * 確定パラメータ */ export interface IConfirmParams { id?: string; transactionNumber?: string; potentialActions?: IPotentialActionsParams; } export interface IResult { } /** * エラー */ export type IError = any; /** * トークン化されたメンバープログラムティア */ export interface ITokenizedMemberProgramTier { /** * ティアトークン */ token: string; isTierOf: { /** * メンバープログラムコード */ identifier: string; }; } /** * イベントオファートークンの中身 * 予約対象イベント、オファー有効期間、イベントオファーコード、対象数量を定義する */ export interface IEventOfferTokenPayload { /** * イベントオファーコード */ identifier: string; /** * YYYY-MM-DDTHH:mm:ssZ */ validFrom: string; /** * YYYY-MM-DDTHH:mm:ssZ */ validThrough: string; /** * 対象数量 * 最大n席まで */ eligibleQuantity: { maxValue: number; }; /** * 対象イベント */ itemOffered: { /** * イベントID */ id: string; }; } /** * イベントオファートークン * 外部組織がイベントオファーを定義する場合に使用 * トークンの中身については @see IEventOfferTokenPayload */ export type IEventOfferToken = string; export interface IObjectWithoutDetail { acceptedOffer?: IAcceptedTicketOfferWithoutDetail[]; broker?: IBroker; reservationFor?: { id: string; }; } export type IReservationFor = IEventReservationReservationFor; /** * 予約取引に保管されるticketType */ export interface ITicketType { additionalProperty?: IPropertyValue[]; category?: IOfferCategory; color?: string; description?: string | IMultilingualString; id?: string; identifier: string; name?: IMultilingualString; typeOf: OfferType.Offer; validRateLimit?: IValidRateLimit; } export type ISubReservationReservedTicket = Omit & { /** * 予約側ではticketType廃止予定であり、予約取引には残す */ ticketType: ITicketType; }; export type ICategoryChargePriceComponent = Pick; export type IMovieTicketTypeChargePriceComponent = Pick; export type IUnitPriceComponent = Pick; export type ITicketPriceComponent = ICategoryChargePriceComponent | IMovieTicketTypeChargePriceComponent | IUnitPriceComponent; export type IPrice = Pick, 'priceComponent' | 'priceCurrency' | 'typeOf' | 'valueAddedTaxIncluded'>; export type IEventReservationAsSubReservation = Pick & { numSeats?: number; price?: IPrice; priceCurrency?: PriceCurrency; reservedTicket: ISubReservationReservedTicket; }; export type IObjectSubReservation = IEventReservationAsSubReservation; export type IServiceTypeOfIssuedThrough = Pick; export interface IIssuedThrough { typeOf: ProductType.EventService; serviceType?: IServiceTypeOfIssuedThrough; /** * 興行id */ id: string; } /** * 予約取引に保管される予約者情報 */ export type IUnderName = Pick & { address?: string; age?: string; gender?: string; url?: string; }; export interface IObject extends Pick { underName?: IUnderName; acceptedOffer?: IAcceptedOffer4object[]; /** * 予約取引開始時に確定するはず */ issuedThrough: IIssuedThrough; reservationFor?: IReservationFor; reservationNumber: string; reservationStatus: ReservationStatusType.ReservationPending; subReservation?: IObjectSubReservation[]; disablePendingReservations: true; useHoldStockByTransactionNumber?: boolean; } export interface IPotentialActions { } export interface IAttributes extends IBaseAttributes { } /** * 予約取引 */ export type ITransaction = IExtendId; export interface IObjectSearchConditions { provider?: { id?: { $eq?: string; }; }; reservationFor?: { id?: { $eq?: string; }; }; reservationNumber?: { $eq?: string; $in?: string[]; }; reservations?: { id?: { $in?: string[]; }; reservationNumber?: { $in?: string[]; }; reservationFor?: { id?: { $in?: string[]; }; }; reservedTicket?: { ticketedSeat?: { seatNumber?: { $eq?: string; }; }; }; }; underName?: { id?: { $eq?: string; }; }; } export interface ISearchConditions extends IBaseSearchConditions { object?: IObjectSearchConditions; }