Hello,
Just a design question, why does the parking spot assigns a vehicle? and who calls it? Is it the ParkingLot or ParkingFloor.
I would suggest moving vehicle parking to ParkingLot and using ParkingLot as mediator => Vehicle does not reference spot and spot does not reference vehicle. Relations are kept in ParkingLot.
(Same would go for tickets).
Also point 12, was never tackled in the solution (payment per hour + increments).
Thanks