Skip to main content

ReservationWorkflow

@adamondo/backend


@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

Methods

getNextStatus()

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

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

Parameters
currentStatus

BookingStatus | null

action

ReservationAction

actor

ReservationActor

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

ReservationActor

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

ReservationActor

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

ReservationActor

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

ReservationActor

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

ReservationActor

context

ReservationWorkflowContext

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

ReservationActor

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

ReservationActor

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()

static getInstance(): ReservationWorkflowEngine

Defined in: src/core/workflow/ReservationWorkflow.ts:2017

Returns

ReservationWorkflowEngine

fromDatabaseType()

static fromDatabaseType(type): BookingStatus | null

Defined in: src/core/workflow/ReservationWorkflow.ts:2024

Parameters
type

string | null | undefined

Returns

BookingStatus | null

toDatabaseType()

static toDatabaseType(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

ReservationWorkflowContext

Returns

ReservationActor

Overrides

BaseWorkflowEngine.getActor

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: 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?

optional reservationId: number

hostId?

optional hostId: string

guestId?

optional guestId: string

actorContext?

optional actorContext: ReservationActorContext

Variables

transitionsV1

const transitionsV1: ReservationWorkflowTransition[]

Defined in: src/core/workflow/ReservationWorkflow.ts:542