chore: very stubby stub for workflow model
This commit is contained in:
parent
b359468593
commit
b7dec2f1d0
14
models/workflows.model
Normal file
14
models/workflows.model
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
WorkflowDefinition
|
||||||
|
graph WorkflowGraph
|
||||||
|
initiator WorkflowInitiator
|
||||||
|
|
||||||
|
WorkflowInitiator
|
||||||
|
-- TODO descriptor of a "role" that can initiate an instance of a workflow in a specified scope
|
||||||
|
|
||||||
|
WorkflowInstance
|
||||||
|
definition WorkflowDefinition
|
||||||
|
initiator UserId
|
||||||
|
|
||||||
|
Flow
|
||||||
|
instance WorkflowInstance
|
||||||
|
|
||||||
54
src/Model/Types/Workflow.hs
Normal file
54
src/Model/Types/Workflow.hs
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
module Model.Types.Workflow where
|
||||||
|
|
||||||
|
import Import
|
||||||
|
|
||||||
|
data WorkflowGraphNodeStatus = WGNS
|
||||||
|
{ wgnsIdent :: CI Text
|
||||||
|
, wgnsFinished :: Bool
|
||||||
|
, wgnsLabel :: Maybe Text
|
||||||
|
}
|
||||||
|
deriving (Eq, Ord, Show, Read, Data, Generic, Typeable)
|
||||||
|
deriveJSON defaultOptions ''WorkflowGraphNodeStatus
|
||||||
|
data WorkflowGraphNode = WGN
|
||||||
|
{ wgnStatus :: WorkflowGraphNodeStatus
|
||||||
|
}
|
||||||
|
deriving (Eq, Ord, Show, Read, Data, Generic, Typeable)
|
||||||
|
deriveJSON defaultOptions ''WorkflowGraphNode
|
||||||
|
|
||||||
|
data WorkflowEdgePayload = WEPText Text
|
||||||
|
| WEPBool Bool
|
||||||
|
deriving (Eq, Ord, Show, Read, Data, Generic, Typeable)
|
||||||
|
|
||||||
|
deriveJSON defaultOptions
|
||||||
|
{ constructorTagModifier = camelToPathPiece' 3
|
||||||
|
} ''WorkflowEdgePayload
|
||||||
|
|
||||||
|
type WorkflowEdgePayloadLabel = CI Text
|
||||||
|
data WorkflowGraphEdge = WGE
|
||||||
|
{ wgeActors :: () -- TODO
|
||||||
|
, wgeTarget :: WorkflowGraphNode
|
||||||
|
, wgeForm :: Map Text (FieldType, FieldSettings UniWorX)
|
||||||
|
, wgePayload :: Map WorkflowEdgePayloadLabel WorkflowEdgePayload
|
||||||
|
}
|
||||||
|
deriving (Eq, Ord, Show, Read, Data, Generic, Typeable)
|
||||||
|
deriveJSON defaultOptions ''WorkflowGraphEdge
|
||||||
|
|
||||||
|
data WorkflowGraph = WG
|
||||||
|
{ wgNodes :: Set WorkflowGraphNode
|
||||||
|
, wgEdges :: Set WorkflowGraphEdge
|
||||||
|
}
|
||||||
|
deriving (Eq, Ord, Show, Read, Data, Generic, Typeable)
|
||||||
|
deriveJSON defaultOptions ''WorkflowGraph
|
||||||
|
|
||||||
|
|
||||||
|
{-
|
||||||
|
data WorkflowInstanceScope = WISGlobal
|
||||||
|
| WISTerm TermId
|
||||||
|
| WISSchool SchoolId
|
||||||
|
| WISCourse CourseId
|
||||||
|
deriving (Eq, Ord, Show, Read, Data, Generic, Typeable)
|
||||||
|
|
||||||
|
deriveJSON defaultOptions
|
||||||
|
{ constructorTagModifier = camelToPathPiece' 3
|
||||||
|
} ''WorkflowInstanceScope
|
||||||
|
-}
|
||||||
Reference in New Issue
Block a user