import { IParticipant, IAction as IBaseAction, IAttributes as IBaseAttributes } from '../../action'; import { ActionType } from '../../actionType'; import { IAbout as INoteAbout } from '../../creativeWork/noteDigitalDocument'; import { CreativeWorkType } from '../../creativeWorkType'; import { IPerson } from '../../person'; import { IInstrumentAsApplication } from './instrumentAsApplication'; import { IEvent as IEventSeries } from '../../event/eventSeries'; import { IAggregateOffer } from '../../offer/aggregateOffer'; import { IOfferCatalog } from '../../offerCatalog'; import { IGood, IOwnershipInfo } from '../../ownershipInfo'; import { IPlace as IMovieTheater } from '../../place/movieTheater'; import { IPlace as IRoom } from '../../place/screeningRoom'; import { IProduct } from '../../product'; import { ISeller } from '../../seller'; import { IObject as IPlaceOrderObject, ITransaction as IPlaceOrder } from '../../transaction/placeOrder'; import { IObject as IReturnOrderObject, ITransaction as IReturnOrder } from '../../transaction/returnOrder'; import { TransactionType } from '../../transactionType'; export type IAgent = IParticipant; export type IRecipient = IParticipant; export type IObjectAsPerson = Pick & { /** * ユーザープールから物理削除するかどうか */ physically?: boolean; }; export type IObjectAsOwnershipInfo = Pick, 'id' | 'identifier' | 'typeOf'> & { id: string; }; export type IObjectAsProduct = Pick; export type IObjectAsOfferCatalog = Pick; export type IObjectAsAggregateOffer = Pick; export type IObjectAsSeller = Pick; export type IObjectAsMovieTheater = Pick; export type IObjectAsRoom = Pick & { containedInPlace: { id: string; }; }; export type IObjectAsEventSeries = Pick; /** * 取引オブジェクト特定方法 */ export declare enum ObjectAsTransactionSpecifyingMethod { Id = "Id", AgentId = "AgentId" } export type IObjectAsPlaceOrder = Pick & { object: Pick; specifyingMethod?: ObjectAsTransactionSpecifyingMethod.Id; }; export type IObjectAsReturnOrder = Pick & { object: Pick; specifyingMethod?: ObjectAsTransactionSpecifyingMethod.Id; }; export interface IObjectAsTransactionByAgentId { specifyingMethod: ObjectAsTransactionSpecifyingMethod.AgentId; project: { id: string; }; typeOf: TransactionType; agent: { id: string; }; } export type IObject = IObjectAsProduct | IObjectAsOfferCatalog | IObjectAsAggregateOffer | IObjectAsSeller | IObjectAsMovieTheater | IObjectAsRoom | IObjectAsEventSeries | IObjectAsPerson | IObjectAsOwnershipInfo | IObjectAsPlaceOrder | IObjectAsReturnOrder | IObjectAsTransactionByAgentId; export interface IResultAsPerson { existingPeople?: any; } export type IResult = IResultAsPerson | any; export type IInstrument = IInstrumentAsApplication; export interface ITargetCollectionAsNote { typeOf: CreativeWorkType.NoteDigitalDocument; about: Pick; } export type ITargetCollection = ITargetCollectionAsNote; export interface IAttributes extends Pick, 'typeOf' | 'targetCollection' | 'sameAs' | 'result' | 'replacer' | 'project' | 'object' | 'instrument' | 'error' | 'agent'> { potentialActions?: never; purpose?: never; instrument?: IInstrument; targetCollection?: ITargetCollection; } /** * 削除アクション */ export type IAction = IBaseAction;