@startuml Classe
!theme mars
left to right direction

class User {
    -id: ?int
    -lastName: string
    -firstName: string
    -companyName: ?string
    -phone: string
    -email: string
    -siret: ?int
    -address string
    -zipCode: string
    -city: string
    -comment: ?string
    -registerAt: Datetime
    -verifyToken: ?string
    -lastLogin: ?Datetime
    -roles: array
    -password: string
}

class Room {
    -id: ?int
    -name: string
    -isActive: bool
    -surface: float
    -seat: int
    -price: float
    -type: Category
    -description: string
}

class Image {
    -id: ?int
    -name: string
    -alt: string
    -room: Room
}

class Category {
    -id: ?int
    -name: string
    -description: string
}

class Reservation {
    -id: ?int
    -dateStart: Datetime
    -dateEnd: Datetime
    -bill: string
    -user: User
    -room: Room
    -code: int
    -comment: ?string
    -total: float

    +duration()
}

class ResetPasswordRequest {
    -id: ?int
    -user: User
    -selector: string
    -hashedToken: string
    -requestedAt: Datetime
    -expiresAt: Datetime
}


Room "One" *- "Many" Image : to
Room "Many" *- "One" Category : to
Category "One" *- "Many" Room: to

User "One" *- "Many" Reservation: to
Reservation "Many" *- "One" User: to

Reservation "Many" *-- "One" Room: to
Room "One" *-- "Many" Reservation: to

ResetPasswordRequest "Many" *-- "One" User: to
User "One" *-- "Many" ResetPasswordRequest: to

@enduml