From fdcaaca223bdf0a8aad807b6cecd885777803b2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Salazar?= <73718835+joshrs23@users.noreply.github.com> Date: Mon, 19 Jan 2026 19:14:53 -0500 Subject: [PATCH] adding diagrams of dataconnect --- .../dataconnect/uml/business_uml_diagram.mmd | 130 +++++++++++++ .../dataconnect/uml/staff_uml_diagram.mmd | 181 ++++++++++++++++++ .../dataconnect/uml/team_uml_diagram.mmd | 79 ++++++++ .../dataconnect/uml/user_uml_diagram.mmd | 71 +++++++ .../uml/vendor_uml_diagram_simplify.mmd | 164 ++++++++++++++++ .../assets/diagrams/diagrams-config.json | 30 +++ 6 files changed, 655 insertions(+) create mode 100644 internal/launchpad/assets/diagrams/dataconnect/uml/business_uml_diagram.mmd create mode 100644 internal/launchpad/assets/diagrams/dataconnect/uml/staff_uml_diagram.mmd create mode 100644 internal/launchpad/assets/diagrams/dataconnect/uml/team_uml_diagram.mmd create mode 100644 internal/launchpad/assets/diagrams/dataconnect/uml/user_uml_diagram.mmd create mode 100644 internal/launchpad/assets/diagrams/dataconnect/uml/vendor_uml_diagram_simplify.mmd diff --git a/internal/launchpad/assets/diagrams/dataconnect/uml/business_uml_diagram.mmd b/internal/launchpad/assets/diagrams/dataconnect/uml/business_uml_diagram.mmd new file mode 100644 index 00000000..ee725cbb --- /dev/null +++ b/internal/launchpad/assets/diagrams/dataconnect/uml/business_uml_diagram.mmd @@ -0,0 +1,130 @@ +--- +config: + theme: mc + layout: dagre +--- +classDiagram +direction TB + class User { + id: String + email: String + } + + class Business { + id: UUID + userId: String + businessName: String + status: BusinessStatus + } + + class Vendor { + id: UUID + userId: String + companyName: String + } + + class Order { + id: UUID + businessId: UUID + vendorId: UUID + status: OrderStatus + } + + class Shift { + id: UUID + orderId: UUID + status: ShiftStatus + } + + class ShiftRole { + shiftId: UUID + roleId: UUID + } + + class Role { + id: UUID + name: String + vendorId: UUID + } + + class Application { + id: UUID + shiftId: UUID + staffId: UUID + roleId: UUID + } + + class Invoice { + id: UUID + businessId: UUID + vendorId: UUID + orderId: UUID + status: InvoiceStatus + } + + class InvoiceTemplate { + id: UUID + name: String + ownerId: UUID + businessId: UUID + vendorId: UUID + } + + class RecentPayment { + id: UUID + invoiceId: UUID + applicationId: UUID + staffId: UUID + } + + class ClientFeedback { + id: UUID + businessId: UUID + vendorId: UUID + rating: Int + } + + class Team { + id: UUID + teamName: String + ownerId: String + } + + class TeamMember { + id: UUID + teamId: UUID + userId: String + role: TeamMemberRole + } + + class TeamHub { + id: UUID + teamId: UUID + hubName: String + } + + class Staff { + id: UUID + userId: String + } + + note for Staff "business can create a staff too" + + Business "1" -- "*" Order : places + Business "1" -- "*" Invoice : receives + Business "1" -- "*" ClientFeedback : gives + Business "1" --o "1" Team : (ownerId) + Business "1" --o "*" InvoiceTemplate : (ownerId) + User "1" -- "1" Business : owns + Vendor "1" -- "*" Order : fulfills + Vendor "1" -- "*" Invoice : issues + Order "1" -- "*" Shift : contains + Order "1" -- "1" Invoice : billed via + Shift "1" -- "*" ShiftRole : requires + ShiftRole "1" -- "1" Role + ShiftRole "1" -- "*" Application : target for + Application "1" -- "1" Staff + Application "1" -- "1" RecentPayment + Invoice "1" -- "*" RecentPayment : paid through + Team "1" -- "*" TeamHub : contains + Team "1" -- "*" TeamMember : has \ No newline at end of file diff --git a/internal/launchpad/assets/diagrams/dataconnect/uml/staff_uml_diagram.mmd b/internal/launchpad/assets/diagrams/dataconnect/uml/staff_uml_diagram.mmd new file mode 100644 index 00000000..7b0588c6 --- /dev/null +++ b/internal/launchpad/assets/diagrams/dataconnect/uml/staff_uml_diagram.mmd @@ -0,0 +1,181 @@ +classDiagram +direction TB + class User { + id: String + email: String + fullName: String + role: UserBaseRole + } + + class Staff { + id: UUID + userId: String + fullName: String + ownerId: UUID + hubId: UUID + rollId: UUID + status: BackgroundCheckStatus + } + + class Account{ + id: UUID + ownerId:UUID + type:AccountType + } + + class Workforce { + id: UUID + vendorId: UUID + staffId: UUID + status: WorkforceStatus + } + + class Application { + id: UUID + shiftId: UUID + staffId: UUID + roleId: UUID + status: ApplicationStatus + } + + class Assignment { + id: UUID + workforceId: UUID + shiftId: UUID + roleId: UUID + status: AssignmentStatus + } + + class ShiftRole { + id: UUID + shiftId: UUID + roleId: UUID + } + + class Shift { + id: UUID + orderId: UUID + status: ShiftStatus + } + + class Order { + id: UUID + vendorId: UUID + businessId: UUID + status: OrderStatus + } + + class Vendor { + id: UUID + userId: String + companyName: String + } + + class Business { + id: UUID + userId: String + businessName: String + } + + class Role { + id: UUID + name: String + vendorId: UUID + roleCategoryId: UUID + } + + class StaffDocument { + staffId: UUID + documentId: UUID + status: DocumentStatus + } + + class Document { + id: UUID + name: String + documentType: DocumentType + } + + class StaffCourse { + staffId: UUID + courseId: UUID + } + + class Course { + id: UUID + title: String + categoryId: UUID + } + + class Category { + id: UUID + label: String + } + + class StaffAvailability { + staffId: UUID + day: DayOfWeek + slot: AvailabilitySlot + } + + class Certificate { + staffId: UUID + certificationType: ComplianceType + status: CertificateStatus + } + + class BenefitData { + staffId: UUID + vendorBenefitPlanId: UUID + current: int + } + + class Contact { + staffId: UUID + relationship: RelationshipType + name: string + } + + class Invoice { + orderId: UUID + } + + class RecentPayment { + staffId: UUID + applicationId: UUID + status: RecentPaymentStatus + } + + class TaxForm { + staffId: UUID + formType: TaxFormType + status: TaxFormStatus + } + + User "1" -- "1" Staff : has + Staff "1" -- "*" Application : applies to + Staff "1" -- "*" Workforce : part of + Staff "1" -- "*" StaffDocument : has + Staff "1" -- "*" Certificate : has + Staff "1" -- "*" BenefitData : has + Staff "1" -- "*" Contact : has + Staff "1" -- "*" TaxForm : has + Staff "1" -- "*" Account : has + Staff "1" -- "*" StaffCourse : takes + Staff "1" -- "*" StaffAvailability : sets + Workforce "1" -- "*" Assignment : receives + Assignment -- ShiftRole + Vendor "1" -- "*" Order : receives + Business "1" -- "*" Order : places + Order "1" -- "1" Invoice : has + Invoice "1" -- "*" RecentPayment : has + RecentPayment "1" -- "1" Application : has + Staff "1" --o "1" Vendor : (ownerId) + Staff "1" --o "1" Business : (ownerId) + Application -- ShiftRole + ShiftRole "*" -- "1" Shift : belongs to + ShiftRole "*" -- "1" Role : defines + Shift "*" -- "1" Order : belongs to + StaffDocument "1" -- "1" Document : references + StaffCourse "1" -- "1" Course : references + Course "1" -- "1" Category : belongs to \ No newline at end of file diff --git a/internal/launchpad/assets/diagrams/dataconnect/uml/team_uml_diagram.mmd b/internal/launchpad/assets/diagrams/dataconnect/uml/team_uml_diagram.mmd new file mode 100644 index 00000000..eb1d6eb6 --- /dev/null +++ b/internal/launchpad/assets/diagrams/dataconnect/uml/team_uml_diagram.mmd @@ -0,0 +1,79 @@ +--- +config: + layout: elk + theme: mc +--- +classDiagram + class User { + id: String + email: String + fullName: String + } + + class TeamMember { + id: UUID + teamId: UUID + userId: String + teamHubId: UUID + role: TeamMemberRole + inviteStatus: TeamMemberInviteStatus + inviteCode: UUID + } + + class Team { + id: UUID + teamName: String + ownerId: String + } + + class TeamHub { + id: UUID + teamId: UUID + hubName: String + } + + class TeamHudDepartment { + id: UUID + name: String + teamHubId: UUID + } + + class MemberTask { + teamMemberId: UUID + taskId: UUID + } + + class Task { + id: UUID + taskName: String + status: TaskStatus + priority: TaskPriority + ownerId: UUID + } + + class Vendor { + id: UUID + companyName: String + } + + class Business { + id: UUID + businessName: String + } + + User "1" -- "1" TeamMember : has + + Team "1" -- "*" TeamHub : contains + Team "1" --o "1" Vendor : (ownerId) + Team "1" --o "1" Business : (ownerId) + + TeamHub "1" -- "*" TeamHudDepartment : has + TeamHub "1" -- "*" TeamMember : is assigned to + + TeamMember "*" -- "1" Team + TeamMember "1" -- "*" MemberTask : has assigned + + Task "1" -- "*" MemberTask : is assigned to + Task --o Vendor : (ownerId) + Task --o Business : (ownerId) + \ No newline at end of file diff --git a/internal/launchpad/assets/diagrams/dataconnect/uml/user_uml_diagram.mmd b/internal/launchpad/assets/diagrams/dataconnect/uml/user_uml_diagram.mmd new file mode 100644 index 00000000..e8da584a --- /dev/null +++ b/internal/launchpad/assets/diagrams/dataconnect/uml/user_uml_diagram.mmd @@ -0,0 +1,71 @@ + +classDiagram +direction TB + class User { + id: String + email: String + fullName: String + role: UserBaseRole + } + + class Staff { + id: UUID + userId: String + fullName: String + ownerId: UUID + hubId: UUID + rollId: UUID + status: BackgroundCheckStatus + } + + class Vendor { + id: UUID + userId: String + companyName: String + } + + class Business { + id: UUID + userId: String + businessName: String + } + + class TeamMember { + id: UUID + teamId: UUID + userId: String + role: TeamMemberRole + } + + class ActivityLog { + id: UUID + userId: String + activityType: ActivityType + } + + class UserConversation { + conversationId: UUID + userId: String + } + + class Conversation { + id: UUID + conversationType: ConversationType + } + + class Message{ + id: UUID + conversationId: UUID + content: String + } + + User <|-- Staff + User <|-- Business + User <|-- Vendor + User <|-- TeamMember + + + User "1" -- "*" ActivityLog : logs + User "1" -- "*" UserConversation : participates in + UserConversation "*" -- "1" Conversation : is part of + Conversation "1" -- "*" Message : has diff --git a/internal/launchpad/assets/diagrams/dataconnect/uml/vendor_uml_diagram_simplify.mmd b/internal/launchpad/assets/diagrams/dataconnect/uml/vendor_uml_diagram_simplify.mmd new file mode 100644 index 00000000..7a642427 --- /dev/null +++ b/internal/launchpad/assets/diagrams/dataconnect/uml/vendor_uml_diagram_simplify.mmd @@ -0,0 +1,164 @@ +--- +config: + layout: dagre +--- +classDiagram +direction TB + class User { + id: String + email: String + } + + class Vendor { + id: UUID + userId: String + companyName: String + tier: VendorTier + } + + class Staff { + id: UUID + userId: String + fullName: String + } + + class VendorBenefitPlan { + id: UUID + vendorId: UUID + title: String + } + + class InvoiceTemplate { + id: UUID + name: String + ownerId: UUID + } + + class VendorRate { + id: UUID + vendorId: UUID + roleName: String + } + + class AttireOption{ + id: UUID + vendorId: UUID + } + + class Team { + id: UUID + teamName: String + ownerId: String + } + + class TeamMember { + id: UUID + teamId: UUID + userId: String + role: TeamMemberRole + } + + class TeamHub { + id: UUID + teamId: UUID + hubName: String + } + + class Business { + id: UUID + userId: String + businessName: String + } + + class ClientFeedback { + id: UUID + businessId: UUID + vendorId: UUID + rating: Int + } + + class Order { + id: UUID + vendorId: UUID + businessId: UUID + status: OrderStatus + } + + class Shift { + id: UUID + orderId: UUID + status: ShiftStatus + } + + class Role { + id: UUID + name: String + vendorId: UUID + } + + class ShiftRole { + shiftId: UUID + roleId: UUID + } + + class Workforce { + id: UUID + vendorId: UUID + staffId: UUID + status: WorkforceStatus + } + + class Application { + id: UUID + shiftId: UUID + staffId: UUID + roleId: UUID + status: ApplicationStatus + } + + class Assignment { + id: UUID + workforceId: UUID + shiftId: UUID + roleId: UUID + status: AssignmentStatus + } + + class Invoice { + id: UUID + vendorId: UUID + businessId: UUID + orderId: UUID + status: InvoiceStatus + } + + class RecentPayment { + id: UUID + staffId: UUID + applicationId: UUID + invoiceId: UUID + status: RecentPaymentStatus + } + + note for Vendor "All tables has relationship with vendor" + + User "1" -- "1" Vendor : has + Vendor "1" o-- "1" Staff : (ownerId) + Vendor "1" -- "*" VendorBenefitPlan : offers + Vendor "1" -- "*" AttireOption + Vendor o-- InvoiceTemplate : (ownerId) + Vendor "1" -- "*" VendorRate : has + Vendor "1" -- "*" ClientFeedback : receives + Vendor "1" -- "*" Order : receives + Business "1" -- "*" Order : places + Order "1" -- "*" Shift : contains + Shift "1" -- "*" ShiftRole : requires + Role "1" -- "*" ShiftRole : fills + ShiftRole "1" -- "*" Application : receives + Assignment "1" -- "1" ShiftRole + Assignment "1" -- "1" Workforce + Invoice "1" -- "1" Order + Invoice "1" -- "*" RecentPayment : details + Vendor "1" o-- "1" Team + Team "1" -- "*" TeamHub : contains + Team "1" -- "*" TeamMember : has \ No newline at end of file diff --git a/internal/launchpad/assets/diagrams/diagrams-config.json b/internal/launchpad/assets/diagrams/diagrams-config.json index 640cc3ce..d9300143 100644 --- a/internal/launchpad/assets/diagrams/diagrams-config.json +++ b/internal/launchpad/assets/diagrams/diagrams-config.json @@ -118,5 +118,35 @@ "title": "Legacy App Backend Architecture", "type": "mermaid", "icon": "bi-diagram-2" + }, + { + "path": "assets/diagrams/dataconnect/uml/user_uml_diagram.mmd", + "title": "User UML Diagram Dataconnect", + "type": "mermaid", + "icon": "bi-diagram-2" + }, + { + "path": "assets/diagrams/dataconnect/uml/staff_uml_diagram.mmd", + "title": "Staff UML Diagram Dataconnect", + "type": "mermaid", + "icon": "bi-diagram-2" + }, + { + "path": "assets/diagrams/dataconnect/uml/business_uml_diagram.mmd", + "title": "Business UML Diagram Dataconnect", + "type": "mermaid", + "icon": "bi-diagram-3" + }, + { + "path": "assets/diagrams/dataconnect/uml/vendor_uml_diagram_simplify.mmd", + "title": "Vendor UML Diagram Dataconnect", + "type": "mermaid", + "icon": "bi-diagram-3" + }, + { + "path": "assets/diagrams/dataconnect/uml/team_uml_diagram.mmd", + "title": "Team UML Diagram Dataconnect", + "type": "mermaid", + "icon": "bi-diagram-2" } ] \ No newline at end of file