@startuml

class User {
    -id: int (PK)
    -username: varchar
    -password: varchar
    -email: varchar
    ...
}

class UserProfile {
    -user: ForeignKey(User, PK)
    -organization: ForeignKey(Organization)
}

class Organization {
    -id: UUID (PK)
    -owner: ForeignKey(User)
    -name: varchar
    -slug: varchar
    -api_key: varchar
    -api_secret: varchar
    -subscription_type: varchar
    -created_at: datetime
    -updated_at: datetime
}

class Agent {
    -id: UUID (PK)
    -name: varchar
    -namespace: varchar
    -organization: ForeignKey(Organization)
    -created_at: datetime
    -updated_at: datetime
}

User "1" -- "1" UserProfile: UserProfile.user
Organization "1" -- "1" UserProfile: UserProfile.organization
Organization "1" -- "*" Agent: Agent.organization
User "1" -- "1..*" Organization: Organization.owner

@enduml
