Files
Deal/src/telegram-service/Deal.Telegram/Sessions/SessionErrorMessages.cs
T
Rustam Khalimov 9e07568ddd Инициализировать репозиторий «Дейл»
Первый коммит: модульный монолит ядра (.NET 10) и gRPC-сервисы
ai/ml/telegram, фронтенд Vue 3/Vite/Tailwind, документация (ТЗ,
инструкция пользователя, техдокументация, код-стайл), бэклог,
скрипты развёртывания и архив прототипа LeadRadar.
2026-09-11 02:50:17 +03:00

111 lines
5.8 KiB
C#

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