namespace ProofOfConcept.Models; public class ParkingState { public bool CarParked { get; set; } public bool ParkingInProgress { get; set; } public DateTimeOffset? CarParkedAt { get; set; } public DateTimeOffset? ParkingStartedAt { get; set; } public DateTimeOffset? ParkingStoppedAt { get; set; } public void SetCarParked() { if (!CarParked) { CarParked = true; CarParkedAt = DateTimeOffset.Now; } } public void SetCarMoved() { if (CarParked) { CarParked = false; CarParkedAt = null; } } public void SetParkingStarted() { if (!ParkingInProgress) { ParkingInProgress = true; ParkingStartedAt = DateTimeOffset.Now; } } public void SetParkingStopped() { if (ParkingInProgress) { ParkingInProgress = false; ParkingStoppedAt = DateTimeOffset.Now; } } }