
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
