namespace NexusShell.Services.Diagnostics;

public enum DiagnosticEventCategory
{
    Lifecycle,
    Workspace,
    Window,
    Launch,
    Performance,
    Api,
    Error,
}

public sealed record DiagnosticLogEntry(
    DateTimeOffset TimestampUtc,
    DiagnosticEventCategory Category,
    string EventName,
    string Message,
    IReadOnlyDictionary<string, string>? Properties = null);

public sealed class DiagnosticSessionInfo
{
    public required string SessionId { get; init; }
    public required string SessionDirectory { get; init; }
    public required DateTimeOffset StartedAtUtc { get; init; }
    public DateTimeOffset? EndedAtUtc { get; set; }
    public bool IsActive { get; set; }
}
