import { EventStatusType } from './eventStatusType'; import { EventType } from './eventType'; import { IMultilingualString } from './multilingualString'; import { IProject } from './project'; import { IPropertyValue } from './propertyValue'; import { SortType } from './sortType'; export interface IAttributes { project: Pick; /** * イベントタイプ */ typeOf: T; /** * イベント識別子 * プロジェクト内でユニーク必須 */ identifier?: string; /** * イベント名称 */ name: IMultilingualString; /** * イベント説明 */ description?: IMultilingualString; /** * イベントステータス * イベントがキャンセル、あるいは、延期された場合に主に使用されます。 */ eventStatus: EventStatusType; additionalProperty?: IPropertyValue[]; } /** * イベント */ export type IEvent> = T & { id: string; }; /** * ソート条件 */ export interface ISortOrder { startDate?: SortType; } export interface ISearchConditions { limit?: number; page?: number; sort?: ISortOrder; id?: { $eq?: string; $in?: string[]; }; identifiers?: string[]; organizer?: { id?: { $eq?: string; }; }; project?: { id?: { $eq?: string; }; }; /** * イベントタイプ */ typeOf?: T; typeOfIn?: EventType[]; /** * イベント名称 */ name?: string; /** * 開催中 from * ISO 8601 date format */ inSessionFrom?: Date; /** * 開催中 through * ISO 8601 date format */ inSessionThrough?: Date; /** * 開始日時 from * ISO 8601 date format */ startFrom?: Date; /** * 開始日時 through * ISO 8601 date format */ startThrough?: Date; /** * 終了日時 from * ISO 8601 date format */ endFrom?: Date; /** * 終了日時 through * ISO 8601 date format */ endThrough?: Date; /** * イベントステータス */ eventStatuses?: EventStatusType[]; additionalProperty?: { $elemMatch?: { name?: { /** * 一致する名称の追加特性がひとつでも存在する */ $eq?: string; }; }; }; }