export const explainInviteError = (error) => {
  if (!error) return "";
  if (error === "USER_ID_INVALID") {
    return "Пользователь удален/скрыт; access_hash невалиден для этой сессии; приглашение в канал/чат без валидной сущности.";
  }
  if (error === "CHAT_WRITE_FORBIDDEN") {
    return "Аккаунт не может приглашать: нет прав или он не участник группы.";
  }
  if (error === "USER_NOT_MUTUAL_CONTACT") {
    return "Пользователь не взаимный контакт для добавляющего аккаунта. Обычно это происходит, когда в группе/канале включена опция «добавлять могут только контакты» или у пользователя закрыт приём инвайтов. Решение: использовать аккаунт, который уже в контактах у пользователя, или поменять настройки группы.";
  }
  if (error === "USER_PRIVACY_RESTRICTED") {
    return "Приглашение запрещено пользователем: приватность не позволяет добавлять в группы.";
  }
  if (error === "USER_NOT_PARTICIPANT") {
    return "Аккаунт не состоит в целевой группе или канал приватный.";
  }
  if (error === "USER_BANNED_IN_CHANNEL") {
    return "Пользователь заблокирован в группе или канале назначения.";
  }
  if (error === "USER_BOT") {
    return "Бота нельзя приглашать как обычного пользователя.";
  }
  if (error === "USER_KICKED") {
    return "Пользователь был удален из группы ранее.";
  }
  if (error === "CHAT_ADMIN_REQUIRED") {
    return "Для добавления участников нужны права администратора.";
  }
  if (error === "CHAT_MEMBER_ADD_FAILED") {
    return "Telegram отклонил добавление. Обычно это антиспам-ограничение или недостаток прав.";
  }
  if (error === "USER_BLOCKED") {
    return "Пользователь заблокировал аккаунт, который пытается добавить.";
  }
  if (error === "USER_RESTRICTED") {
    return "Пользователь ограничен Telegram или чатами.";
  }
  if (error === "FLOOD" || error === "PEER_FLOOD") {
    return "Слишком много действий. Снизьте лимит или увеличьте интервалы.";
  }
  return "";
};

export const explainTdataError = (error) => {
  if (!error) return "";
  if (error.includes("AUTH_KEY_DUPLICATED")) {
    return "tdata используется в другом устройстве. Выйдите из аккаунта на других устройствах и пересоберите tdata.";
  }
  if (error.includes("SESSION_REVOKED")) {
    return "Сессия отозвана. Залогиньтесь заново и пересоберите tdata.";
  }
  if (error.includes("PHONE_CODE_INVALID")) {
    return "Неверный код подтверждения.";
  }
  if (error.includes("PASSWORD_HASH_INVALID")) {
    return "Неверный пароль 2FA.";
  }
  if (error.includes("API_ID_INVALID")) {
    return "Неверный API ID/Hash.";
  }
  return "";
};
