A parking lot system manages a physical lot where vehicles enter, park in a spot that fits their size, and pay for the time they stayed. Drivers arrive at one of several gates, take a ticket, and the system points them to an open spot of the right size. When they leave, they hand back the ticket, the system works out the charge from how long they parked, takes payment, and marks the spot free again for the next car.
The software model leaves cameras, gate motors, and real payment processing outside its boundary. It focuses on the entities and responsibilities that make the lot work: where occupancy state lives and how the lot finds and reserves a fitting spot without assigning it twice.
The lot supports three spot sizes (motorcycle, compact, and large) and three vehicle types (motorcycle, car, and truck), with smaller vehicles allowed to use larger spots but not the reverse. A ticket records the assigned spot and the entry time and acts as the token the driver returns on exit. Pricing is computed from parked duration so the design has a natural seam for swapping rate policies later.