import { ICreativeWork as IBaseCreativeWork } from '../creativeWork'; import { CreativeWorkType } from '../creativeWorkType'; import { IMultilingualString } from '../multilingualString'; import { IOffer as IBaseOffer } from '../offer'; import { IProject } from '../project'; import { SortType } from '../sortType'; /** * コンテンツに対するオファー * 最適化(2023-08-01~) */ export type IOffer = Pick; /** * 配給者 */ export interface IDistributor { id?: string; codeValue?: string; } /** * コンテンツ * {@link https://schema.org/Movie} */ export interface ICreativeWork extends Pick { project: Pick; identifier: string; /** * The duration of the item (movie, audio recording, event, etc.) in ISO 8601 date format. */ duration?: string; name?: IMultilingualString; /** * 販売情報 */ offers: IOffer; /** * 配給者 */ distributor?: IDistributor; typeOf: CreativeWorkType.Movie; } /** * コンテンツ作成パラメータ */ export type ICreateParams = Pick & { name?: Pick; offers: Pick; distributor?: Pick; /** * レイティング区分コード */ contentRating?: string; }; /** * ソート条件 */ export interface ISortOrder { identifier?: SortType; } export interface IOfferSearchConditions { availableFrom?: Date; availableThrough?: Date; } /** * 検索条件 */ export interface ISearchConditions { limit?: number; page?: number; sort?: ISortOrder; project?: { id?: { $eq?: string; }; }; contentRating?: { $eq?: string; }; distributor?: { codeValue?: { $eq?: string; }; }; id?: { $eq?: string; $in?: string[]; }; identifier?: string | { $eq?: string; $in?: string[]; $regex?: string; }; name?: string; datePublishedFrom?: Date; datePublishedThrough?: Date; offers?: IOfferSearchConditions; additionalProperty?: { $elemMatch?: { name?: { /** * 一致する名称の追加特性がひとつでも存在する */ $eq?: string; }; }; }; }