| 73 | } |
| 74 | |
| 75 | interface WorkflowStore { |
| 76 | // State |
| 77 | currentWorkflow: WorkflowState | null; |
| 78 | workflowHistory: WorkflowTransition[]; |
| 79 | pendingApprovals: ApprovalRequest[]; |
| 80 | isProcessing: boolean; |
| 81 | error: string | null; |
| 82 | |
| 83 | // Actions |
| 84 | setWorkflow: (workflow: WorkflowState) => void; |
| 85 | updateWorkflowPhase: (phase: WorkflowPhase) => void; |
| 86 | addURLs: (urls: URLInfo[]) => void; |
| 87 | updateURLs: (urls: URLInfo[]) => Promise<void>; |
| 88 | updateSchema: (fields: SchemaField[]) => Promise<void>; |
| 89 | approveAction: (approvalId: string, approved: boolean, reason?: string) => Promise<void>; |
| 90 | transitionToPhase: (phase: WorkflowPhase, reason?: string) => Promise<void>; |
| 91 | fetchWorkflow: (pipelineId: string) => Promise<void>; |
| 92 | fetchWorkflowHistory: (pipelineId: string) => Promise<void>; |
| 93 | clearError: () => void; |
| 94 | } |
| 95 | |
| 96 | export const useWorkflowStore = create<WorkflowStore>((set, get) => ({ |
| 97 | // Initial state |
nothing calls this directly
no outgoing calls
no test coverage detected