class UserType { firstname; lastname; username; salt; hash; } class HomeOwner { isA UserType; } class ServiceProvider { int[] availabilities; address; int phonenumber; companyname; boolean licensed; description; isA UserType; } class Admin { isA UserType; 1 -- * Service; } class Service { name; double rate; * -- * ServiceProvider; } class Booking { int starth; int startmin; int endh; int endmin; int day; int month; int year; status; int rating; comment; * -- 1 HomeOwner; * -- 1 ServiceProvider; * -- 1 Service; } class UserType { position 475 69 141 109; } class HomeOwner { position 109 233 109 41; } class ServiceProvider { position 849 239 173 126; } class Admin { position 490 236 109 41; position.association Admin__Service 66,41 0,52; position.association Admin__Service:create 109,28 0,60; position.association Admin__Service:creates 109,16 0,28; } class Service { position 849 474 112 75; position.association Service__ServiceProvider 65,0 65,143; } class Booking { position 99 433 178 194; position.association Booking__HomeOwner 62,0 54,41; position.association Booking__ServiceProvider 178,50 0,94; position.association Booking__Service 178,120 0,68; }