Skip to main content

DocumentApprovalWorkflow

@adamondo/backend


@adamondo/backend / core/workflow/DocumentApprovalWorkflow

core/workflow/DocumentApprovalWorkflow

Enumerations

DocumentApprovalActor

Defined in: src/core/workflow/DocumentApprovalWorkflow.ts:41

Enumeration Members

OWNER

OWNER: "owner"

Defined in: src/core/workflow/DocumentApprovalWorkflow.ts:42

ADMIN

ADMIN: "admin"

Defined in: src/core/workflow/DocumentApprovalWorkflow.ts:43

Classes

DocumentApprovalWorkflowEngine

Defined in: src/core/workflow/DocumentApprovalWorkflow.ts:493

Generic workflow engine that evaluates transitions and executes versioned side effects.

Extends

Methods

getNextStatus()

getNextStatus(currentStatus, action, actor, version?): DocumentApprovalStatus

Defined in: src/core/workflow/BaseWorkflow.ts:65

Parameters
currentStatus

DocumentApprovalStatus | null

action

DocumentApprovalAction

actor

DocumentApprovalActor

version?

number

Returns

DocumentApprovalStatus

Deprecated

Use executeAction instead. Computes the next status for a given action/actor pair.

Throws

When no matching transition exists.

Inherited from

BaseWorkflowEngine.getNextStatus

isActionAllowed()

isActionAllowed(currentStatus, action, actor, version?): boolean

Defined in: src/core/workflow/BaseWorkflow.ts:95

Checks whether an action is allowed for the actor in the current status.

Parameters
currentStatus

DocumentApprovalStatus

action

DocumentApprovalAction

actor

DocumentApprovalActor

version?

number

Returns

boolean

Inherited from

BaseWorkflowEngine.isActionAllowed

getAllowedActions()

getAllowedActions(currentStatus, actor, version?): DocumentApprovalAction[]

Defined in: src/core/workflow/BaseWorkflow.ts:113

Lists all allowed actions for an actor in the current status.

Parameters
currentStatus

DocumentApprovalStatus

actor

DocumentApprovalActor

version?

number

Returns

DocumentApprovalAction[]

Inherited from

BaseWorkflowEngine.getAllowedActions

isActionAlreadyApplied()

isActionAlreadyApplied(currentStatus, action, actor, version?): boolean

Defined in: src/core/workflow/BaseWorkflow.ts:128

Returns true when the action's target status already matches current status for this actor. Useful for idempotent API behavior on duplicate requests.

Parameters
currentStatus

DocumentApprovalStatus | null

action

DocumentApprovalAction

actor

DocumentApprovalActor

version?

number

Returns

boolean

Inherited from

BaseWorkflowEngine.isActionAlreadyApplied

getActionsWithMetadata()

getActionsWithMetadata(currentStatus, actor, version?): object[]

Defined in: src/core/workflow/BaseWorkflow.ts:144

Returns allowed actions enriched with UI metadata.

Parameters
currentStatus

DocumentApprovalStatus

actor

DocumentApprovalActor

version?

number

Returns

object[]

Inherited from

BaseWorkflowEngine.getActionsWithMetadata

executeAction()

executeAction<K>(currentStatus, action, actor, context): Promise<{ nextStatus: DocumentApprovalStatus; result: DocumentApprovalActionResultMap[K]; }>

Defined in: src/core/workflow/BaseWorkflow.ts:172

Executes a transition side effect in a transaction and returns the resulting status/value.

Type Parameters
K

K extends DocumentApprovalAction

Parameters
currentStatus

DocumentApprovalStatus | null

action

K

actor

DocumentApprovalActor

context

DocumentApprovalWorkflowContext

Returns

Promise<{ nextStatus: DocumentApprovalStatus; result: DocumentApprovalActionResultMap[K]; }>

Throws

When no matching transition exists.

Inherited from

BaseWorkflowEngine.executeAction

getLatestVersion()

getLatestVersion(): number

Defined in: src/core/workflow/BaseWorkflow.ts:233

Returns the highest registered workflow definition version.

Returns

number

Inherited from

BaseWorkflowEngine.getLatestVersion

getMermaidDiagram()

getMermaidDiagram(version?): string

Defined in: src/core/workflow/BaseWorkflow.ts:240

Generates a Mermaid state diagram from workflow transitions.

Parameters
version?

number

Returns

string

Inherited from

BaseWorkflowEngine.getMermaidDiagram

setStatusMetadata()

setStatusMetadata(status, actor, metadata): void

Defined in: src/core/workflow/BaseWorkflow.ts:260

Associates status metadata for a specific actor.

Parameters
status

DocumentApprovalStatus

actor

DocumentApprovalActor

metadata

unknown

Returns

void

Inherited from

BaseWorkflowEngine.setStatusMetadata

getStatusMetadata()

getStatusMetadata(status, actor): unknown

Defined in: src/core/workflow/BaseWorkflow.ts:267

Retrieves status metadata previously bound for an actor.

Parameters
status

DocumentApprovalStatus

actor

DocumentApprovalActor

Returns

unknown

Inherited from

BaseWorkflowEngine.getStatusMetadata

getInstance()

static getInstance(): DocumentApprovalWorkflowEngine

Defined in: src/core/workflow/DocumentApprovalWorkflow.ts:518

Returns

DocumentApprovalWorkflowEngine

resolveWorkflowContext()

resolveWorkflowContext<K>(userId, targetId, action, payload, actorContext?): Promise<DocumentApprovalWorkflowContext>

Defined in: src/core/workflow/DocumentApprovalWorkflow.ts:526

Builds action execution context from user, target resource, and payload.

Type Parameters
K

K extends DocumentApprovalAction

Parameters
userId

string

targetId

number | undefined

action

K

payload

DocumentApprovalActionPayloadMap[K]

actorContext?

unknown

Returns

Promise<DocumentApprovalWorkflowContext>

Overrides

BaseWorkflowEngine.resolveWorkflowContext

getActor()

getActor(context): DocumentApprovalActor

Defined in: src/core/workflow/DocumentApprovalWorkflow.ts:612

Resolves workflow actor from runtime context.

Parameters
context

DocumentApprovalWorkflowContext

Returns

DocumentApprovalActor

Overrides

BaseWorkflowEngine.getActor

Interfaces

DocumentApprovalActionResultMap

Defined in: src/core/workflow/DocumentApprovalWorkflow.ts:52

Properties

submit

submit: object

Defined in: src/core/workflow/DocumentApprovalWorkflow.ts:53

documentId

documentId: number

documentStatus

documentStatus: DocumentApprovalStatus

requestChanges

requestChanges: object

Defined in: src/core/workflow/DocumentApprovalWorkflow.ts:57

documentId

documentId: number

documentStatus

documentStatus: DocumentApprovalStatus

resubmit

resubmit: object

Defined in: src/core/workflow/DocumentApprovalWorkflow.ts:61

documentId

documentId: number

documentStatus

documentStatus: DocumentApprovalStatus

approve

approve: object

Defined in: src/core/workflow/DocumentApprovalWorkflow.ts:65

documentId

documentId: number

documentStatus

documentStatus: DocumentApprovalStatus

Type Aliases

DocumentApprovalWorkflowContext

DocumentApprovalWorkflowContext = BaseWorkflowContext<DocumentApprovalStatus> & object

Defined in: src/core/workflow/DocumentApprovalWorkflow.ts:71

Type Declaration

userId

userId: string

documentId?

optional documentId: number

actorContext?

optional actorContext: DocumentActorContext

action

action: DocumentApprovalAction

payload

payload: DocumentApprovalActionPayloadMap[DocumentApprovalAction]