package wf.servitor.common import wf.servitor.common.workflow.Workflow import java.io.Serializable import java.util.* sealed class Event : Serializable { data class Task( override val workflow: Workflow, val context: Map = mapOf(), override val flow: String = "entry", override val path: List = listOf(0), val dispatchedValues: List = listOf(), override val id: UUID = UUID.randomUUID() ) : Event(), TaskLike data class Relay( val service: String, val method: String, val arguments: List, val task: Task, val id: UUID = UUID.randomUUID() ) : Event() data class TaskUpdate( val task: TaskLike, val status: String ) : Event() interface TaskLike : Serializable { val id: UUID val workflow: Workflow val flow: String val path: List } }