namespace ytLive.Models;
///
/// One row in the left panel's alert stack (creator design, 2026-11-05). The stack sits above the
/// panel's content and pushes it down, so an alert is seen without hunting for a tab.
/// Pinned rows are standing state, not errors to clear: they show a pin instead of a
/// close control and are only removed when the state itself changes (the Steam licence indicator
/// becomes dismissible — and its dismissal permanent — once ownership is verified).
/// Clicking a row runs its action: the licence indicator opens About; an event alert opens the
/// Logs tab with that event's lines highlighted.
///
public sealed record AttentionAlert(
string Id,
string Label,
string Text,
bool IsPinned,
AttentionAlertAction Action,
long LogFrom = 0,
long LogTo = 0)
{
/// True while a close control should be shown (a dismissible row).
public bool CanDismiss => !IsPinned;
/// True while the row should show the pin glyph instead of a close control.
public bool ShowsPin => IsPinned;
}
public enum AttentionAlertAction
{
/// Open the About panel (the licence indicator).
About,
/// Open the Logs tab and highlight this event's lines.
Logs,
}