@startuml

!theme vibrant

User "1" --> "0..*" Message : send
User "0..*" -- "0..*" Channel : join
Channel "1" --> "0..*" Message : contains

class User {
 - Long id
 - String name
}

class Channel {
 - Long id
 - String hash
}

class Message {
 - Long id
 - String text
}

@enduml