Domain Modelling Data Types
Let's now add type information to our class diagram.
Add Type Information to the Class Diagram
Here's what I came to in Miro:

Formalize the Class Diagram
Here's the class diagram formalized as MermaidJs.
I've went with the Java-style way of declaring types in the formalized version:
classDiagram
class Organizer {
}
class Attendee {
}
class Staff {
}
class User {
UUID id
String name
String email
}
class Event {
UUID id
String name
LocalDateTime start
LocalDateTime end
String venue
LocalDateTime salesEndDate
LocalDateTime salesEndDate
EventStatusEnum status
}
class TicketType {
UUID id
String name
Double price
Integer totalAvailable
}
class Ticket {
UUID: id
TicketStatusEnum status
LocalDateTime createdDateTime
}
class QrCode {
UUID id
LocalDateTime generatedTime
QrCodeStatusEnum status
}
class TicketValidation {
UUID id
TicketValidationStatusEnum status
LocalDateTime validationTime
TicketValidationMethodEnum validationMethod
}
Organizer --|> User
Attendee --|> User
Staff --|> User
Organizer "1" --* "0..*" Event: organizes
Attendee --o Event: attends
Staff --o Event: works at
User "1" --* "0..*" Ticket: purchases
Event "1" --* "0..*" TicketType: offers
TicketType "1" --* "0..*" Ticket: categorizes
Ticket "1" --* "0..*" TicketValidation: validated
Ticket "1" --* "1..*" QrCode : hasSummary
- Added data type information to the application's class diagram