chore: very stubby stub for workflow model

This commit is contained in:
Sarah Vaupel 2020-04-01 12:12:07 +02:00 committed by Gregor Kleen
parent b359468593
commit b7dec2f1d0
2 changed files with 68 additions and 0 deletions

14
models/workflows.model Normal file
View 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

View 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
-}