namespace Deal.Telegram.Telegram; /// /// Результат чтения выборки источника для оценки кандидата. /// public sealed record DiscoveryReadResult { /// /// Код причины ok=false /// public const string NoHistoryError = "no_history"; /// /// Пустой успешный результат. /// public static DiscoveryReadResult Empty { get; } = new(true, null, []); /// /// Создаёт результат чтения выборки. /// /// True — выборка получена; false — история недоступна. /// Код причины при ok=false ("no_history"); иначе null. /// Сообщения выборки (форумы — по темам, topic_id/topic_title заполнены). public DiscoveryReadResult( bool ok, string? error, IReadOnlyList messages) { Ok = ok; Error = error; Messages = messages; } /// /// Создаёт результат «история недоступна» /// public static DiscoveryReadResult NoHistory() => new(false, NoHistoryError, []); /// /// True — выборка получена; false — история недоступна без членства. /// public bool Ok { get; } /// /// Код причины при ok=false /// public string? Error { get; } /// /// Сообщения выборки /// public IReadOnlyList Messages { get; } }