namespace ElevatorDiag; public record ElevatorHealth( bool IsHealthy, ElevatorState State, int CurrentFloor, double PrecisePosition, string? ActiveFault, int PendingRequestsCount ); public class ElevatorDiagnostics { private readonly Elevator _elevator; public ElevatorDiagnostics(Elevator elevator) { _elevator = elevator; } public ElevatorHealth GetHealth() { return new ElevatorHealth( _elevator.State != ElevatorState.Faulted, _elevator.State, _elevator.CurrentFloor, _elevator.CurrentPosition, _elevator.LastFault, _elevator.TargetFloors.Count ); } public string GetStatusReport() { var health = GetHealth(); return $"[Elevator Report]\n" + $"Status: {(health.IsHealthy ? "OK" : "FAULTED")}\n" + $"State: {health.State}\n" + $"Floor: {health.CurrentFloor} ({health.PrecisePosition:F2})\n" + $"Pending: {health.PendingRequestsCount} floors\n" + (health.ActiveFault != null ? $"Fault Detail: {health.ActiveFault}\n" : ""); } }