namespace LightlessSync.PlayerData.Pairs;

public sealed record PairDebugInfo(
    bool HasHandler,
    bool HandlerInitialized,
    bool HandlerVisible,
    bool HandlerScheduledForDeletion,
    DateTime? LastDataReceivedAt,
    DateTime? LastApplyAttemptAt,
    DateTime? LastSuccessfulApplyAt,
    DateTime? InvisibleSinceUtc,
    DateTime? VisibilityEvictionDueAtUtc,
    double? VisibilityEvictionRemainingSeconds,
    string? LastFailureReason,
    IReadOnlyList<string> BlockingConditions,
    bool IsApplying,
    bool IsDownloading,
    int PendingDownloadCount,
    int ForbiddenDownloadCount,
    bool PendingModReapply,
    bool ModApplyDeferred,
    int MissingCriticalMods,
    int MissingNonCriticalMods,
    int MissingForbiddenMods)
{
    public static PairDebugInfo Empty { get; } = new(
        false,
        false,
        false,
        false,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        Array.Empty<string>(),
        false,
        false,
        0,
        0,
        false,
        false,
        0,
        0,
        0);
}
