import { IBusinessEntityType } from './businessEntityType'; import { IMultilingualString } from './multilingualString'; import { IAvailableAtOrFrom, IOffer } from './offer'; import { IOrganization } from './organization'; import { OrganizationType } from './organizationType'; import { IProject } from './project'; import { IPropertyValue } from './propertyValue'; import { IQuantitativeValue } from './quantitativeValue'; import { ISellerReturnPolicy } from './sellerReturnPolicy'; import { SortType } from './sortType'; import { UnitCode } from './unitCode'; export type IEachReturnPolicy = Pick & { url?: string; }; export type IHasMerchantReturnPolicy = IEachReturnPolicy[]; /** * 利用可能決済 */ export interface IPaymentAccepted { /** * 決済方法区分 */ paymentMethodType: string; } export type IEligibleTransactionDuration = Pick, 'maxValue' | 'typeOf' | 'unitCode'>; export interface IMakesOffer extends Pick { availableAtOrFrom: IAvailableAtOrFrom; /** * 対象カスタマータイプ */ eligibleCustomerType?: IBusinessEntityType[]; /** * 対象取引期間 */ eligibleTransactionDuration: IEligibleTransactionDuration; } export interface ISeller extends Pick { project: Pick; /** * The geographic area where a service or offered item is provided. */ branchCode: string; /** * Indicates a MerchantReturnPolicy that may be applicable. */ hasMerchantReturnPolicy?: IHasMerchantReturnPolicy; name: IMultilingualString; /** * 各アプリケーションに対するオファー */ makesOffer?: IMakesOffer[]; paymentAccepted?: IPaymentAccepted[]; typeOf: OrganizationType.Corporation; } /** * ソート条件 */ export interface ISortOrder { branchCode?: SortType; } /** * 販売者検索条件 */ export interface ISearchConditions { limit?: number; page?: number; sort?: ISortOrder; project?: { id?: { $eq?: string; }; }; branchCode?: { $eq?: string; $regex?: string; }; hasMerchantReturnPolicy?: { identifier?: { $eq?: string; }; }; id?: { $eq?: string; }; /** * 名称 */ name?: string; /** * 追加特性 */ additionalProperty?: { $all?: IPropertyValue[]; $in?: IPropertyValue[]; $nin?: IPropertyValue[]; $elemMatch?: any; }; paymentAccepted?: { paymentMethodType?: { $eq?: string; }; }; }