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' }); } }