#nullable enable
namespace ErsatzTV.Core.Api.Troubleshooting;

// State machine for the SPA's playback-status poll:
//   "idle"      - no session has run since startup / reset
//   "running"   - a session is in flight (IEntityLocker.IsTroubleshootingPlaybackLocked())
//   "completed" - the last session finished with exit code 0
//   "failed"    - the last session finished with a non-zero exit code
// ExitCode/Speed are populated once a result has been recorded; Logs is the tail (last 500 lines)
// of the session's logs.txt when present.
public record TroubleshootingPlaybackStatusResponseModel(
    string State,
    int? ExitCode,
    double? Speed,
    string? Logs);
