import { IParticipantAsPerson, IParticipantAsWebApplication, IParticipantAsSoftwareApplication, IAction as IBaseAction, IAttributes as IBaseAttributes } from '../../action'; import { ActionType } from '../../actionType'; import { Identifier as WebAPIIdentifier, IService as IWebAPI } from '../../service/webAPI'; import { IInstrumentAsApplication } from './instrumentAsApplication'; import { EventType } from '../../eventType'; import { OrganizationType } from '../../organizationType'; import { PlaceType } from '../../placeType'; export type IAgent = IParticipantAsPerson | IParticipantAsWebApplication | IParticipantAsSoftwareApplication; interface IImportFromCOAParams { project: { id: string; typeOf: OrganizationType.Project; }; /** * 施設コード */ locationBranchCode: string; importFrom: Date; importThrough: Date; /** * 施設を保管するかどうか */ saveMovieTheater: boolean; /** * 施設コンテンツを保管するかどうか */ saveScreeningEventSeries: boolean; saveScreeningEventSeriesPeriodInMonth: number; } export interface IObjectAsEventByCOA extends IImportFromCOAParams { startDate: string; superEvent: { location: { branchCode: string; }; }; typeOf: EventType.ScreeningEvent; } export interface IObjectAsMovieTheaterByCOA extends IImportFromCOAParams { branchCode: string; typeOf: PlaceType.MovieTheater; } export type IObject = IObjectAsEventByCOA | IObjectAsMovieTheaterByCOA; export type IResult = any; export type IReplacer = any; export interface IInstrumentAsCOAAPI { theaterCode: string; begin?: string; end?: string; typeOf: IWebAPI['typeOf']; identifier: WebAPIIdentifier.COA; } export type IInstrument = IInstrumentAsApplication | IInstrumentAsCOAAPI; export type ITargetCollection = any; export interface IAttributes extends Pick, 'typeOf' | 'targetCollection' | 'sameAs' | 'result' | 'replacer' | 'project' | 'object' | 'instrument' | 'error' | 'agent'> { potentialActions?: never; purpose?: never; replacer?: IReplacer; instrument?: IInstrument; targetCollection: ITargetCollection; } /** * 置換アクション */ export type IAction = IBaseAction; export {};