import { NextApiRequest, NextApiResponse } from 'next';
import { connectDB } from '../utils/db';
import User from '../models/User';
import { verifyTelegramWebAppData } from '../utils/telegram';

export default async function handler(
  req: NextApiRequest,
  res: NextApiResponse
) {
  if (req.method !== 'GET') {
    return res.status(405).json({ message: 'Method not allowed' });
  }

  try {
    // Проверяем данные Telegram WebApp
    const initData = req.headers['x-telegram-init-data'] as string;
    if (!initData) {
      return res.status(401).json({ message: 'Unauthorized' });
    }

    const telegramData = await verifyTelegramWebAppData(initData);
    if (!telegramData) {
      return res.status(401).json({ message: 'Invalid Telegram data' });
    }

    // Подключаемся к базе данных
    await connectDB();

    // Получаем или создаем пользователя
    let user = await User.findOne({ telegramId: telegramData.user.id });

    if (!user) {
      user = await User.create({
        telegramId: telegramData.user.id,
        username: telegramData.user.username || `user${telegramData.user.id}`,
        level: 1,
        experience: 0,
        balance: 1000, // Начальный баланс для новых пользователей
        achievements: [],
        inventory: [],
      });
    }

    res.status(200).json(user);
  } catch (error) {
    console.error('Error in user API:', error);
    res.status(500).json({ message: 'Internal server error' });
  }
} 