namespace Deal.Telegram.Sessions;
///
/// Канонические тексты причин сессионных ошибок (detail RPC и статус-поле GetStatus.error).
/// Тексты 1:1 с прототипом backend/app/services/telegram.py и перечнем строк плана
/// (задачи: «Telegram не подключён», «Сначала сохраните Telegram api_id и api_hash в настройках»,
/// «Неверный код», «Код истёк — запросите новый», «Неверный облачный пароль»).
///
public static class SessionErrorMessages
{
///
/// Ключи приложения не переданы ядром (INVALID_ARGUMENT).
///
public const string NoApiKeys = "Сначала сохраните Telegram api_id и api_hash в настройках";
///
/// Аккаунт тенанта не подключён — нет сессии (FAILED_PRECONDITION).
///
public const string NotConnected = "Telegram не подключён";
///
/// Неверный SMS-код входа (INVALID_ARGUMENT).
///
public const string WrongCode = "Неверный код";
///
/// SMS-код истёк, нужен новый (INVALID_ARGUMENT).
///
public const string CodeExpired = "Код истёк — запросите новый";
///
/// Неверный облачный пароль 2FA (INVALID_ARGUMENT).
///
public const string WrongPassword = "Неверный облачный пароль";
///
/// SendCode вызван вне фазы "code" (FAILED_PRECONDITION).
///
public const string CodeNotRequested = "Код не запрашивался — начните вход по номеру телефона";
///
/// SendPassword вызван вне фазы "password" (FAILED_PRECONDITION).
///
public const string PasswordNotRequested = "2FA-пароль не запрашивался — сначала отправьте код";
///
/// Metadata tenant-id отсутствует или пуст (UNAUTHENTICATED).
///
public const string TenantIdMissing = "tenant-id отсутствует в metadata";
///
/// Некорректный tenant-id (INVALID_ARGUMENT).
///
public const string InvalidTenantId = "Некорректный tenant-id в metadata";
///
/// Telegram/сеть недоступны (UNAVAILABLE).
///
public const string TelegramUnavailable = "Telegram недоступен — повторите попытку позже";
///
/// Ядро (gRPC-ингресс) недоступно — PushMessage/SyncDialogs не доставлены (UNAVAILABLE).
///
public const string IngressUnavailable = "Ядро недоступно — повторите попытку позже";
///
/// Диалог не найден в аккаунте/кэше сущностей сессии (INVALID_ARGUMENT).
///
public const string UnknownDialog = "Источник не найден в аккаунте — обновите список каналов";
///
/// Пустой username вступления (INVALID_ARGUMENT; 1:1 ValueError discovery_join L828).
///
public const string JoinUsernameMissing = "Не указан username для вступления";
///
/// Поисковый запрос длиннее верхней границы (INVALID_ARGUMENT; защита границы сервиса).
///
public const string SearchQueryTooLong = "Слишком длинный поисковый запрос";
///
/// Username вступления длиннее лимита Telegram (INVALID_ARGUMENT).
///
public const string UsernameTooLong = "Слишком длинный username";
///
/// Внутренняя ошибка сервиса (INTERNAL; сбой реализации, а не транспорт/сеть).
///
public const string InternalError = "Внутренняя ошибка сервиса — повторите попытку позже";
///
/// По username найден не канал/группа (личный чат/бот) — вступить нельзя (INVALID_ARGUMENT).
///
public const string JoinTargetNotChannel = "По этому username найден не канал/группа — вступить нельзя";
///
/// Некорректный (неподписанный) id диалога в запросе (INVALID_ARGUMENT).
///
public const string InvalidDialogId = "Некорректный id источника";
///
/// Телефон не зарегистрирован в Telegram (регистрация из сервиса не выполняется).
///
public const string SignUpRequired = "Номер не зарегистрирован в Telegram — зарегистрируйте его в приложении Telegram";
///
/// Ключ шифрования сессий не задан в env (служебная ошибка конфигурации).
///
public const string SessionKeyNotConfigured = "Ключ шифрования сессий не задан (DEAL_TELEGRAM_SESSION_KEY)";
}