diff --git a/diagrams/class-diagrams.md b/diagrams/class-diagrams.md index 2156cb6..edef43a 100644 --- a/diagrams/class-diagrams.md +++ b/diagrams/class-diagrams.md @@ -2,38 +2,61 @@ ```mermaid classDiagram -Ticket Event Patron -Address -Order - -Ticket : Guid Id -Ticket : int Seats -Ticket : DateTime Date -Ticket : Patron Patron +Season +Talent +Ticket +Venue Event : Guid Id -Event : String Title -Event : String Description -Event : DateTime Date -Event : Array Tickets +Event : Guid SeasonId +Event : Date Date +Event : String Name +Event : String? Description +Event : Object Venue +Event : Object Talent +Event : Array TicketIds -Patron : Guid Id -Patron : String EmailAddress -Patron : String PhoneNumber -Patron : Address Address +Patron : String FirstName +Patron : String? MiddleName +Patron : String LastName +Patron : String Email +Patron : String? PhoneNumber +Patron : String AddressOne +Patron : String? AddressTwo +Patron : String City +Patron : String State +Patron : String Zip -Address : Guid Id -Address : String StreetAddressOne -Address : String StreetAddressTwo -Address : String City -Address : String State -Address : String ZipCode +Season : Guid Id +Season : String Name +Season : String? Description +Season : Date StartDate +Season : Date EndDate +Season : Array EventIds -Order : Guid Id -Order : Patron Patron -Order : Array Tickets +Talent : String Name +Talent : String? Description + +Ticket : Guid Id +Ticket : Guid? SeasonId +Ticket : Guid EventId +Ticket : TicketType Type +Ticket : String QrCode +Ticket : Object Patron + +Venue : String Name +Venue : String? Description +Venue : String AddressOne +Venue : String? AddressTwo +Venue : String City +Venue : String State +Venue : String Zip + +Patron --* Ticket + +Venue --* Event +Talent --* Event -Event o-- Ticket : X Tickets ``` diff --git a/diagrams/order-lookup.md b/diagrams/order-lookup.md deleted file mode 100644 index 0929246..0000000 --- a/diagrams/order-lookup.md +++ /dev/null @@ -1,12 +0,0 @@ -# Order Lookup - -```mermaid -sequenceDiagram -participant UI -participant API -participant DB -UI->>API: Order Id -API->>DB: Order Id -DB->>API: Order Returned -API->>UI: Order Details Returned -``` diff --git a/diagrams/ticket-generation.md b/diagrams/ticket-generation.md new file mode 100644 index 0000000..0acfa8e --- /dev/null +++ b/diagrams/ticket-generation.md @@ -0,0 +1,16 @@ +# Ticket Generation + +```mermaid +sequenceDiagram +participant UI +participant API +participant DB +UI ->> API: Print Ticket Request +API ->> API: Generate Ticket Id +API ->> API: Generate Qr Code +API ->> DB: Save Ticket +API ->> DB: Associate Ticket with Event +API ->> API: Build Ticket Data for UI +API ->> UI: Respond with Ticket +UI ->> UI: Builds Visual Ticket +``` diff --git a/diagrams/ticket-lookup.md b/diagrams/ticket-lookup.md new file mode 100644 index 0000000..1171be5 --- /dev/null +++ b/diagrams/ticket-lookup.md @@ -0,0 +1,34 @@ +# Ticket Lookup + +## Happy Path + +```mermaid +sequenceDiagram +participant UI +participant API +participant DB + +UI ->> UI: Decode QrCode +UI ->> API: Send TicketId from QrCode +API ->> DB: Query Ticket +DB -->> API: Ticket Returned, if found +API ->> DB: Query Event from Ticket +DB -->> API: Event Information Returned +API ->> API: Check for Ticket Validity +API ->> UI: Return Ticket Validity +``` + +## No Ticket Found + +```mermaid +sequenceDiagram +participant UI +participant API +participant DB + +UI ->> UI: Decode QrCode +UI ->> API: Send TicketId from QrCode +API ->> DB: Query Ticket +DB -->> API: None Found +API ->> UI: Ticket Not Found +``` diff --git a/diagrams/ticket-minting.md b/diagrams/ticket-minting.md deleted file mode 100644 index 8194d1e..0000000 --- a/diagrams/ticket-minting.md +++ /dev/null @@ -1,14 +0,0 @@ -# Ticket Minting - -```mermaid -sequenceDiagram -participant UI -participant API -participant DB -UI->>API: Mint Ticket(s) Request -API->>DB: Get Ticket Ids -DB->>DB: IDs Assigned -DB->>API: IDs Returned -API->>API: QR Codes Generated -API->>UI: Code Returned, Email Sent -``` diff --git a/diagrams/ticket-verification.md b/diagrams/ticket-verification.md deleted file mode 100644 index 3bcb861..0000000 --- a/diagrams/ticket-verification.md +++ /dev/null @@ -1,29 +0,0 @@ -# Ticket Verification - -## Happy Path - -```mermaid -sequenceDiagram -participant UI -participant API -participant DB - -UI ->> API: Decoded Ticket Id from QR Code -API ->> DB: Query DB with Id -DB ->> API: Found Ticket Info -API ->> UI: Tickets Found, Admit X Seats -``` - -## Negative Path - -```mermaid -sequenceDiagram -participant UI -participant API -participant DB - -UI ->> API: Decoded Ticket Id from QR Code -API ->> DB: Query DB with Id -DB ->> API: None Found -API ->> UI: Ticket Not Found -``` diff --git a/diagrams/validity-check.md b/diagrams/validity-check.md new file mode 100644 index 0000000..d042b1e --- /dev/null +++ b/diagrams/validity-check.md @@ -0,0 +1,26 @@ +# Ticket Validity Check + +```mermaid +flowchart TD + +start([Ticket Found, Event Found]) +eventDateIsToday(Checks if Event Date is Today) +todayIsAfterEvent(Checks if Event was before Today) +twoHoursEarly(Checks if its less than 2 hours to event start) +fiveHoursAgo(Checks if Event started less than 5 hours ago) +returnsInvalid([Ticket is Invalid]) +returnsExpired([Ticket is Expired]) +returnsExpired2([Ticket is Expired]) +returnsEarly([Ticket is Early]) +returnsValid([Ticket is Valid]) + +start --> eventDateIsToday -- yes --- todayIsAfterEvent +eventDateIsToday -- no --- returnsInvalid + +todayIsAfterEvent -- yes --- returnsExpired2 + +todayIsAfterEvent --> twoHoursEarly -- no --- returnsEarly +twoHoursEarly -- yes --- fiveHoursAgo +fiveHoursAgo -- yes --- returnsValid +fiveHoursAgo -- no --- returnsExpired +```