import { IAccountTitle } from '../accountTitle'; import { IExtendId } from '../autoGenerated'; import { ICategoryCode } from '../categoryCode'; import { CreativeWorkType } from '../creativeWorkType'; import { EventType } from '../eventType'; import { IOfferCatalog } from '../offerCatalog'; import { OfferType } from '../offerType'; import { OrganizationType } from '../organizationType'; import { PlaceType } from '../placeType'; import { ProductType } from '../product'; import { ITaskAttributes } from '../task'; import { TaskName } from '../taskName'; export type AccountTitleType = IAccountTitle['typeOf']; export type CategoryCodeType = ICategoryCode['typeOf']; export type OfferCatalogType = IOfferCatalog['typeOf']; export type IResourceTypeOf = AccountTitleType | CategoryCodeType | CreativeWorkType.Movie | CreativeWorkType.NoteDigitalDocument | EventType.ScreeningEventSeries | OrganizationType.Corporation | PlaceType.MovieTheater | ProductType | OfferCatalogType | OfferType.AggregateOffer; export interface IData4common { /** * リソースIDリスト */ id: string[]; project: { id: string; }; typeOf: IResourceTypeOf; isNew: boolean; useInform: boolean; /** * typeOf: OfferCatalogのリポジトリを判定するため */ isOfferCatalogItem?: boolean; branchCode?: never; isDeleted?: never; } /** * ルーム変更の場合のタスクデータ */ export interface IData4screeningRoom { /** * ルームコードリスト */ branchCode: string[]; containedInPlace: { /** * 施設ID */ id: string; }; project: { id: string; }; typeOf: PlaceType.ScreeningRoom; isNew?: never; useInform: boolean; isDeleted?: never; } export interface IData4pos { /** * コード */ branchCode: string; operator: { /** * 施設ID */ id: string; }; project: { id: string; }; typeOf: 'POS'; isNew: boolean; useInform: boolean; isDeleted?: never; } /** * 入場ゲート変更の場合のタスクデータ */ export interface IData4entranceGate { /** * コードリスト */ identifier: string[]; containedInPlace: { /** * 施設ID */ id: string; }; project: { id: string; }; typeOf: PlaceType.EntranceGate; useInform: boolean; isNew?: never; isDeleted?: never; } export type IData = IData4common | IData4screeningRoom | IData4pos | IData4entranceGate; export interface IAttributes extends ITaskAttributes { name: TaskName.OnResourceUpdated; data: IData; } /** * リソース変更時タスク */ export type ITask = IExtendId;