import { JobActionType } from './job-action-type'; import { TechnologyInformation } from './technology'; import { HolderAcceptanceCriterionWrapper } from './holder-acceptance-criterion-wrapper'; import { StageJobInformation } from './stage-job-information'; import { Job, JobContentComponentName, JobContentComponents, JobContentStructureType, JobStructureType, JobType, StorageObject } from '../../shared'; import { ApprovalJob } from './approval.api'; import { MainJob } from './main-job'; export interface TechnologyActionJobInformation extends TechnologyInformation { readonly contentStructCtShiftType: JobActionType; } export interface ActionJob extends Job { readonly type: typeof JobType.JobAction; } export type StorageObjectActionJob = StorageObjectJob; export type ActionJobParallel = JobParallel; export type ActionJobInformation = TechnologyActionJobInformation | StageJobInformation; export interface ActionJobContent extends SimpleJobContentStructureType { readonly components: ActionJobContentComponents; readonly estimatedTime: string; readonly acceptanceCriteria: HolderAcceptanceCriterionWrapper[]; } export type ActionJobContentComponents = Pick; export interface JobParallel { readonly id: string; readonly type: Job['type']; readonly content: { readonly structureType: JobStructureType.Parallel; readonly containerId: string; readonly jobs: T[]; }; } export type StorageObjectJob = StorageObject; export interface SimpleJobContentStructureType extends JobContentStructureType { readonly structureType: JobStructureType.Simple; } export type JobWithTeamSettings = ActionJob | ApprovalJob | MainJob;