Skip to content

feat: instantiate transducer for booking#1

Merged
monotykamary merged 3 commits into
mainfrom
feat-transducer-booking
Jan 9, 2023
Merged

feat: instantiate transducer for booking#1
monotykamary merged 3 commits into
mainfrom
feat-transducer-booking

Conversation

@monotykamary

@monotykamary monotykamary commented Jan 3, 2023

Copy link
Copy Markdown
Collaborator

What does this PR do?

Reference state machine
reference

Generated digraph

Generated SQL for Audit

CREATE OR REPLACE FUNCTION booking_transition(state text, event text) RETURNS text
LANGUAGE sql AS $$
  SELECT CASE state
    WHEN 'Idle' THEN CASE event
      WHEN 'Book' THEN 'Reserved'
      ELSE state
    END
    WHEN 'Reserved' THEN CASE event
      WHEN 'Book' THEN 'Booked'
      WHEN 'Cancel' THEN 'Cancelled'
      ELSE state
    END
    WHEN 'Booked' THEN CASE event
      WHEN 'CheckIn' THEN 'CheckedIn'
      ELSE state
    END
    WHEN 'CheckedIn' THEN CASE event
      WHEN 'CheckOut' THEN 'CheckedOut'
      ELSE state
    END
  END
$$

Generated Shortest Paths

'Booked' state
		Booked                         + CheckIn                        -> CheckedIn

'CheckedIn' state
		CheckedIn                      + CheckOut                       -> CheckedOut

'Idle' state
		Idle                           + Book                           -> Reserved
		Idle                           + Book                           -> Reserved
		Reserved                       + Book                           -> Booked
		Idle                           + Book                           -> Reserved
		Reserved                       + Book                           -> Booked
		Booked                         + CheckIn                        -> CheckedIn

'Reserved' state
		Reserved                       + Book                           -> Booked
		Booked                         + CheckIn                        -> CheckedIn
		Reserved                       + Cancel                         -> Cancelled
		Reserved                       + Book                           -> Booked

@monotykamary monotykamary merged commit 5d0af60 into main Jan 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants