Summary.
classDiagram class ParkingLotManager { +getLotOccupancy(lotId: String): OccupancyReport +findAvailableSlot(lotId: String, vehicleType: VehicleType): ParkingSlot +submitUserReport(report: UserReport): void +ingestSensorData(reading: SensorReading): void +getLots(): List~ParkingLot~ } class ParkingLot { -lotId: String -name: String -location: String -lotType: LotType -slots: List~ParkingSlot~ -sensors: List~Sensor~ +getLotName(): String +getTotalSpaces(): int +getAvailableSpaces(): int +getSpacesByType(type: SlotType): int +isAvailable(): boolean } class ParkingSlot { -slotId: String -slotNumber: int -slotType: SlotType -occupied: boolean -vehicleType: VehicleType -lastUpdated: DateTime +isAvailable(): boolean +getSlotNumber(): int +isOccupied(): boolean +getType(): SlotType +setOccupied(isOccupied: boolean, vehicleType: VehicleType): void +setSlotType(type: SlotType): void } class Vehicle { -type: VehicleType +getType(): VehicleType } class User { -id: int -firstName: String -lastName: String -email: String -passwordHash: String -createdAt: DateTime +getID(): int +getFirstName(): String +getLastName(): String +getFullName(): String +authenticate(password: String): boolean +getActions(): List~String~ } class Client class Admin class Sensor { -sensorId: String -sensorType: SensorType -lotId: String -reliability: float +read(): SensorReading } class SensorReading { -sensorId: String -timestamp: DateTime -occupiedCount: int -rawData: Map } class UserReport { -reportId: String -userId: int -lotId: String -timestamp: DateTime -reportedAvailable: int -confidence: int -comments: String } class OccupancyReport { -lotId: String -timestamp: DateTime -estimatedAvailable: int -sourceBreakdown: Map +asConfidenceScore(): float } class DataManager { -usersRepo -lotsRepo -slotsRepo -reportsRepo -sensorRepo +getUserById(id: int) +saveUserReport(r: UserReport) +querySlotsByLot(lotId: String): List~ParkingSlot~ } %% Enums (represented as classes for mermaid) class SlotType{CAR MOTORCYCLE HANDICAPPED EV COMPACT} class VehicleType{CAR MOTORCYCLE HANDICAPPED EV} class LotType{SURFACE STRUCTURE} class SensorType{ULTRASONIC CAMERA LOOP} ParkingLot "1" o-- "*" ParkingSlot ParkingLot "1" o-- "*" Sensor ParkingLotManager "1" -- "*" ParkingLot ParkingLotManager "1" -- "*" UserReport ParkingLotManager "1" -- "*" SensorReading User "1" -- "*" UserReport DataManager "1" -- "*" ParkingLot DataManager "1" -- "*" User Client --|> User Admin --|> User
Comments