@startuml

class TacticInfo {
    - id: int
    - name: string
    - creationDate: string
    - ownerId: string
    - content: string

    + __construct(id:int,name:string,creationDate:int,ownerId:int,courtType:CourtType,content:string)
    + getId(): int
    + getOwnerId(): int
    + getCreationTimestamp(): int
    + getName(): string
    + getContent(): string
    + getCourtType() : CourtType
}

TacticInfo -->"- courtType" CourtType

class CourtType{
    - value : int
    - COURT_PLAIN : int {static} {frozen}
    - COURT_HALF : int {static} {frozen}

    - __construct(val:int)
    + plain() : CourtType {static}
    + half() : CourtType {static}
    + name() : string
    + fromName(name:string) : CourtType
    + isPlain() : bool
    + isHalf() : bool
}

note bottom: Basically an evoluated enum

class Account {
    - token: string

    + __construct(token:string,user:User)
    + getUser() : User
    + getToken() : string
}

Account -->"- user" User

class Member {
    - teamId: int
    - role : string

    + __construct(role : string)
    + getUser(): User
    + getTeamId(): int
    + getRole(): string
}

note bottom: Member's role is either "Coach" or "Player"

Member -->"- user" User

class TeamInfo {
    - name: string
    - picture: string
    - mainColor : string
    - secondColor : string

    + __construct(id:int,name:string,picture:string,mainColor:string,secondColor:string)
    + getName(): string
    + getPicture(): string
    + getMainColor(): string
    + getSecondColor(): string
}

note left: Both team's color are the hex code of the color

class Team {
    + __construct(info:TeamInfo,members: Member[])
    + getInfo(): TeamInfo
    + listMembers(): Member[]
}

Team --> "- info" TeamInfo
Team --> "- members *" Member

class User{
    - id : int
    - name : string
    - email : string
    - profilePicture : string

    + __construct(id : int,name : string,email: string,profilePicture:string)
    + getId() : id
    + getName() : string
    + getEmail() : string
    + getProfilePicture() : string
}

@enduml