import type { CuiNullable } from '@cuby-ui/cdk'; import type { WorkflowActionComponent } from './arrow-work-flow-component-controller-api.options'; import { SubjectType } from '../../shared'; import { ConsumableBase, ConsumableWrapperBase } from './consumable'; export interface ArrowWorkflowSource { readonly contentFragmentId: string; readonly contentType: string; readonly shelfId?: string; readonly portId?: string; readonly stateId?: string; readonly outAggregationElementId?: string; } export interface ArrowWorkflowTarget { readonly contentFragmentId: string; readonly contentType: SubjectType; readonly item: string; readonly subject: string; } export interface WorkflowConsumable { readonly arrowActionWorkFlow: CuiNullable; readonly contentFlow: WorkflowContentFlow; } export interface WorkflowContentFlow { readonly consumables: ConsumableBase[]; readonly arrowContentDefault: WorkflowArrowContentDefault; } export interface WorkflowArrowContentDefault { readonly elementId: string; readonly contentType: SubjectType; readonly amount: number; readonly arrowIds: string[]; readonly rackId: string; readonly shelfId: string; } export interface WorkflowContentConsumable extends ConsumableWrapperBase { readonly pdmNumber: string; } export interface WorkflowArrowAction { readonly id: string; readonly components: WorkflowActionComponent[]; readonly designator: Designator; } export interface Designator { readonly arrowId: string; readonly consumable: DesignatorConsumable; readonly productionTechnologyId: string; readonly sourceContent: ArrowWorkflowSource; readonly target: ArrowWorkflowTarget; } export interface DesignatorConsumable { readonly contentType: SubjectType; readonly id: string; readonly item: { readonly id: string; }; }