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; }
}