namespace ytLive.Models; /// Development-only sample data for the scoreboard. /// /// Creator (2026-10-30): the strip must be provable in the PREVIEW before a real stream — /// "simulate the ticker so we can see it and ensure it's getting composited". Synthetic events go /// through the same a live stream uses, so what the preview shows /// is exactly what real events would produce; nothing here fakes the renderer. /// /// Kept in the model (not the view-model) so the sample is testable without a window. public static class ScoreboardSample { public static void Inject(ScoreboardRecorder recorder) { if (!recorder.IsRunning) recorder.StartSession(); recorder.Record(new ChatMessage { Kind = ChatEventKind.NewMember, AuthorName = "newviewer" }); recorder.Record(new ChatMessage { Kind = ChatEventKind.MemberGift, AuthorName = "giftgiver", GiftNewMembersCount = 3, }); recorder.Record(new ChatMessage { Kind = ChatEventKind.MemberMilestone, AuthorName = "longtimer" }); recorder.Record(new ChatMessage { Kind = ChatEventKind.SuperChat, AuthorName = "tipper", SuperChatAmount = 12.34, SuperChatCurrency = "USD", SuperChatDisplayString = "$12.34", }); } }