import { ICreativeWork as IBaseCreativeWork } from '../../creativeWork'; import { CreativeWorkType } from '../../creativeWorkType'; import { OrganizationType } from '../../organizationType'; import { IProject } from '../../project'; import { SortType } from '../../sortType'; export interface ISubjectAsWebApplication { /** * クライアントID */ id: string; typeOf: CreativeWorkType.WebApplication; } export type IAbout = ISubjectAsWebApplication; export interface IIssuedBy { /** * IDP識別子 */ identifier: string; typeOf: OrganizationType.Organization; } /** * アプリケーションアイデンティティ */ export interface ICertification extends Pick { /** * IDP * 複数存在する場合、どのIDPでも受け入れる想定 */ issuedBy: IIssuedBy | IIssuedBy[]; project: Pick; /** * subject */ about: IAbout; dateCreated?: Date; dateModified?: Date; typeOf: CreativeWorkType.Certification; } /** * ソート条件 */ export interface ISortOrder { 'about.id'?: SortType; } /** * 検索条件 */ export interface ISearchConditions { limit?: number; page?: number; sort?: ISortOrder; project?: { id?: { $eq?: string; }; }; id?: { $eq?: string; $in?: string[]; }; about?: { id?: { $eq?: string; $regex?: string; }; typeOf?: { $eq?: string; }; }; issuedBy?: { identifier?: { $eq?: string; }; }; }