classDiagram
    class Boat {
        +int id
        +string name
        +int amount_seats
        +int location_id
        +int owner
        +int year_built
        +string boatbuilder
        +bool default_shipmaster_only_steering
        +bool convert_handoperated_possible
        +string default_destination
        +bool skull
        +bool external
        +bool deleted
    }

    class Location {
        +int id
        +string name
    }

    class Boathouse {
        +int id
        +int boat_id
        +string aisle
        +string side
        +int level
    }

    class BoatDamage {
        +int id
        +int boat_id
        +string desc
        +int user_id_created
        +datetime created_at
        +int user_id_fixed
        +datetime fixed_at
        +int user_id_verified
        +datetime verified_at
        +bool lock_boat
    }

    class BoatReservation {
        +int id
        +int boat_id
        +date start_date
        +date end_date
        +string time_desc
        +string usage
        +int user_id_applicant
        +int user_id_confirmation
        +datetime created_at
    }

    class User {
      ...
    }

    Boat "*" -- "1" User : owner
    Boat "*" -- "1" Location
    Boathouse "*" -- "1" Boat
    BoatDamage "*" -- "1" Boat
    BoatDamage "*" -- "1" User : created_by
    BoatDamage "*" -- "0..1" User : fixed_by
    BoatDamage "*" -- "0..1" User : verified_by
    BoatReservation "*" -- "1" Boat
    BoatReservation "*" -- "1" User : applicant
    BoatReservation "*" -- "0..1" User : confirmed_by