ReservationWorkflow
@adamondo/backend / core/workflow/ReservationWorkflow
core/workflow/ReservationWorkflow
Enumerations
ReservationActor
Defined in: src/core/workflow/ReservationWorkflow.ts:62
Enumeration Members
GUEST
GUEST:
"guest"
Defined in: src/core/workflow/ReservationWorkflow.ts:63
HOST
HOST:
"host"
Defined in: src/core/workflow/ReservationWorkflow.ts:64
SYSTEM
SYSTEM:
"system"
Defined in: src/core/workflow/ReservationWorkflow.ts:65
ADMIN
ADMIN:
"admin"
Defined in: src/core/workflow/ReservationWorkflow.ts:66
Classes
ReservationWorkflowEngine
Defined in: src/core/workflow/ReservationWorkflow.ts:1778
Generic workflow engine that evaluates transitions and executes versioned side effects.
Extends
BaseWorkflowEngine<BookingStatus,ReservationAction,ReservationActor,ReservationWorkflowContext,ReservationActionResultMap,ReservationActionPayloadMap>
Methods
getNextStatus()
getNextStatus(
currentStatus,action,actor,version?):BookingStatus
Defined in: src/core/workflow/BaseWorkflow.ts:65
Parameters
currentStatus
BookingStatus | null
action
ReservationAction
actor
version?
number
Returns
BookingStatus
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
BookingStatus
action
ReservationAction
actor
version?
number
Returns
boolean
Inherited from
BaseWorkflowEngine.isActionAllowed
getAllowedActions()
getAllowedActions(
currentStatus,actor,version?):ReservationAction[]
Defined in: src/core/workflow/BaseWorkflow.ts:113
Lists all allowed actions for an actor in the current status.
Parameters
currentStatus
BookingStatus
actor
version?
number
Returns
ReservationAction[]
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
BookingStatus | null
action
ReservationAction
actor
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
BookingStatus
actor
version?
number
Returns
object[]
Inherited from
BaseWorkflowEngine.getActionsWithMetadata
executeAction()
executeAction<
K>(currentStatus,action,actor,context):Promise<{nextStatus:BookingStatus;result:ReservationActionResultMap[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 ReservationAction
Parameters
currentStatus
BookingStatus | null
action
K
actor
context
Returns
Promise<{ nextStatus: BookingStatus; result: ReservationActionResultMap[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
BookingStatus
actor
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
BookingStatus
actor
Returns
unknown
Inherited from
BaseWorkflowEngine.getStatusMetadata
resolveWorkflowContext()
resolveWorkflowContext<
K>(userId,targetId,action,payload,actorContext?):Promise<ReservationWorkflowContext>
Defined in: src/core/workflow/ReservationWorkflow.ts:1786
Builds action execution context from user, target resource, and payload.
Type Parameters
K
K extends ReservationAction
Parameters
userId
string
targetId
number | undefined
action
K
payload
any
actorContext?
any
Returns
Promise<ReservationWorkflowContext>
Overrides
BaseWorkflowEngine.resolveWorkflowContext
getInstance()
staticgetInstance():ReservationWorkflowEngine
Defined in: src/core/workflow/ReservationWorkflow.ts:2017
Returns
fromDatabaseType()
staticfromDatabaseType(type):BookingStatus|null
Defined in: src/core/workflow/ReservationWorkflow.ts:2024
Parameters
type
string | null | undefined
Returns
BookingStatus | null
toDatabaseType()
statictoDatabaseType(status):string
Defined in: src/core/workflow/ReservationWorkflow.ts:2034
Parameters
status
BookingStatus
Returns
string
getActor()
getActor(
context):ReservationActor
Defined in: src/core/workflow/ReservationWorkflow.ts:2038
Resolves workflow actor from runtime context.
Parameters
context
Returns
Overrides
Interfaces
ReservationActionResultMap
Defined in: src/core/workflow/ReservationWorkflow.ts:75
Properties
inquiry
inquiry:
object
Defined in: src/core/workflow/ReservationWorkflow.ts:76
threadId
threadId:
number
preApproved
preApproved:
object
Defined in: src/core/workflow/ReservationWorkflow.ts:77
reservationId
reservationId:
number
declinedByHost
declinedByHost:
Record<string,never>
Defined in: src/core/workflow/ReservationWorkflow.ts:78
declinedByGuest
declinedByGuest:
Record<string,never>
Defined in: src/core/workflow/ReservationWorkflow.ts:79
paid
paid:
Record<string,never>
Defined in: src/core/workflow/ReservationWorkflow.ts:80
cancelledByGuest
cancelledByGuest:
Record<string,never>
Defined in: src/core/workflow/ReservationWorkflow.ts:81
cancelledByHost
cancelledByHost:
Record<string,never>
Defined in: src/core/workflow/ReservationWorkflow.ts:82
expired
expired:
Record<string,never>
Defined in: src/core/workflow/ReservationWorkflow.ts:83
complete
complete:
Record<string,never>
Defined in: src/core/workflow/ReservationWorkflow.ts:84
issueClaim
issueClaim:
Record<string,never>
Defined in: src/core/workflow/ReservationWorkflow.ts:85
updateClaim
updateClaim:
Record<string,never>
Defined in: src/core/workflow/ReservationWorkflow.ts:86
approveClaim
approveClaim:
Record<string,never>
Defined in: src/core/workflow/ReservationWorkflow.ts:87
returnClaim
returnClaim:
Record<string,never>
Defined in: src/core/workflow/ReservationWorkflow.ts:88
escalateClaim
escalateClaim:
Record<string,never>
Defined in: src/core/workflow/ReservationWorkflow.ts:89
settleNoClaim
settleNoClaim:
Record<string,never>
Defined in: src/core/workflow/ReservationWorkflow.ts:90
adminSendToOwner
adminSendToOwner:
Record<string,never>
Defined in: src/core/workflow/ReservationWorkflow.ts:91
adminSendToRenter
adminSendToRenter:
Record<string,never>
Defined in: src/core/workflow/ReservationWorkflow.ts:92
adminSettleClaim
adminSettleClaim:
Record<string,never>
Defined in: src/core/workflow/ReservationWorkflow.ts:93
Type Aliases
ReservationWorkflowContext
ReservationWorkflowContext =
BaseWorkflowContext<BookingStatus> &object&ReservationWorkflowAction
Defined in: src/core/workflow/ReservationWorkflow.ts:97
Type Declaration
userId
userId:
string
threadId
threadId:
number|undefined
currentStatus
currentStatus:
BookingStatus|null
reservationId?
optionalreservationId:number
hostId?
optionalhostId:string
guestId?
optionalguestId:string
actorContext?
optionalactorContext:ReservationActorContext
Variables
transitionsV1
consttransitionsV1:ReservationWorkflowTransition[]
Defined in: src/core/workflow/ReservationWorkflow.ts:542