import { IBusinessEntityType } from './businessEntityType'; import { IMerchantReturnPolicy } from './merchantReturnPolicy'; import { IAvailableAtOrFrom, IOffer } from './offer'; import { IOrganization } from './organization'; import { OrganizationType } from './organizationType'; import { SortType } from './sortType'; /** * 通知パラメータ */ export interface IInformParams { /** * 通知先 */ recipient?: { id?: string; name?: string; url?: string; }; } export interface ISendEmailMessageSettings { sender?: { email?: string; }; } /** * プロジェクト設定 */ export interface ISettings { sendEmailMessage?: ISendEmailMessageSettings; sendgridApiKey?: string; useMyCreditCards?: boolean; useAggregateReservation?: { /** * aggregateReservationsを利用する施設コンテンツID */ eventSeriesIds?: string[]; }; useAggregateOffer?: boolean; useOfferRateLimit?: boolean; /** * 注文照会結果にcustomerを含めるかどうか * 2025-09-10= */ includeCustomerAsFindByConfirmationNumberResult?: boolean; } export interface ISubscription { identifier?: string; /** * プロダクトとしての興行管理を利用するかどうか */ useEventServiceAsProduct?: boolean; /** * サブカタログ管理を利用するかどうか */ useOfferCatalogItem?: boolean; /** * プロダクトの複数カタログ管理を利用するかどうか */ useMultipleProductCatalogs?: boolean; } export type IHasMerchantReturnPolicy = Pick & { /** * ポリシー識別子(プロジェクト自動生成) */ identifier?: string; }; export interface IMemberProgram { hostingOrganization: { /** * トークン発行者 */ identifier: string; }; } export interface IMemberProgramTier { isTierOf: { /** * メンバープログラムコード */ identifier: string; }; secret?: never; } export interface IMakesOffer extends Pick { availableAtOrFrom: IAvailableAtOrFrom; /** * 対象カスタマータイプ */ eligibleCustomerType?: IBusinessEntityType[]; /** * add (2025-01-13) */ validForMemberTier?: IMemberProgramTier; } /** * プロジェクト */ export interface IProject extends Pick { typeOf: OrganizationType.Project; id: string; alternateName?: string; hasMerchantReturnPolicy?: IHasMerchantReturnPolicy; name?: string; settings?: ISettings; subscription?: ISubscription; } /** * ソート条件 */ export interface ISortOrder { _id?: SortType; } /** * プロジェクト検索条件 */ export interface ISearchConditions { limit?: number; page?: number; sort?: ISortOrder; id?: { $eq?: string; }; ids?: string[]; /** * 名称 */ name?: string; }