/**
 * Константы для работы с пользователями
 */

// Единый ID для всех операций с API
const DEFAULT_USER_ID = 296487847;

// Переменная для хранения ID текущего пользователя
let CURRENT_USER_ID: number = DEFAULT_USER_ID;

/**
 * Проверяет, доступен ли объект Telegram WebApp и данные пользователя
 */
export const isTelegramWebAppAvailable = (): boolean => {
  return Boolean(
    window.Telegram?.WebApp?.initDataUnsafe?.user?.id
  );
};

/**
 * Инициализация ID пользователя при старте приложения
 */
export const initializeUserId = (): void => {
  if (isTelegramWebAppAvailable() && window.Telegram?.WebApp?.initDataUnsafe?.user?.id) {
    CURRENT_USER_ID = window.Telegram.WebApp.initDataUnsafe.user.id;
    console.log('Инициализирован ID пользователя Telegram:', CURRENT_USER_ID);
  } else {
    console.log('Используется тестовый ID пользователя:', DEFAULT_USER_ID);
  }
};

/**
 * Получает текущий ID пользователя
 */
export const getCurrentUserId = (): number => {
  return CURRENT_USER_ID;
};

/**
 * Получает ID пользователя в виде строки
 * Используется для совместимости с API, требующими строковый ID
 */
export const getUserIdString = (): string => {
  return getCurrentUserId().toString();
};

/**
 * Получает информацию о пользователе Telegram
 * Если Telegram WebApp недоступен, возвращает тестовые данные
 */
export const getUserInfo = () => {
  if (isTelegramWebAppAvailable() && window.Telegram?.WebApp?.initDataUnsafe?.user) {
    return window.Telegram.WebApp.initDataUnsafe.user;
  }
  // Тестовые данные для локальной разработки
  return {
    id: CURRENT_USER_ID,
    first_name: 'Test',
    last_name: 'User',
    username: 'testuser',
    language_code: 'ru',
    photo_url: '/ava.jpg' // Добавляем тестовую аватарку
  };
};
