import { Injectable } from '@nestjs/common';
import { PrismaService } from '../../common/services/prisma.service';

@Injectable()
export class UserService {
  constructor(private prisma: PrismaService) {}

  async getOrCreateUser(from: any) {
    return await this.prisma.user.upsert({
      where: { telegramId: from.id.toString() },
      update: { username: from.username, firstName: from.first_name },
      create: {
        telegramId: from.id.toString(),
        username: from.username,
        firstName: from.first_name,
      },
      include: { tests: { orderBy: { createdAt: 'desc' }, take: 1 } },
    });
  }

  async findByTelegramId(telegramId: string) {
    return await this.prisma.user.findUnique({
      where: { telegramId },
      include: { tests: { orderBy: { createdAt: 'desc' }, take: 1 } },
    });
  }
}