using Nonemm.Contests; using Nonemm.Core.Calls; namespace Nonemm.Session; /// One thing the check window offers: a callsign in most columns, an exchange /// value in the exchange column. `Verdict` is what the log says about a call, /// so it is coloured the same as everywhere else, and null for anything that is /// not a call. public sealed record CheckCandidate(string Text, PartialMatchQuality Quality, Verdict? Verdict); /// Where a column of candidates came from. They stay apart because they answer /// different questions: the log is what this station copied itself, the /// database is a guess about the whole world, the call history is what was /// published before the contest, the bandmap is somebody else's claim, and the /// exchange column is not about callsigns at all. public enum CheckSource { Log, Database, History, Bandmap, Exchange, } /// One column of the check window. public sealed record CheckColumn( CheckSource Source, int Held, IReadOnlyList Candidates);