using GymLogAI.Application.Interfaces; using GymLogAI.Core.Entities; using Microsoft.EntityFrameworkCore; namespace GymLogAI.Persistence.Repositories; public sealed class UserRepository(AppDbContext dbContext) : IUserRepository { public async Task GetByIdAsync(Guid id, CancellationToken cancellationToken) { return await dbContext.Users.SingleOrDefaultAsync(x => x.Id == id, cancellationToken); } public async Task GetByTelegramUserIdAsync(long telegramUserId, CancellationToken cancellationToken) { return await dbContext.Users.SingleOrDefaultAsync(x => x.TelegramUserId == telegramUserId, cancellationToken); } public async Task AddAsync(User user, CancellationToken cancellationToken) { dbContext.Users.Add(user); await dbContext.SaveChangesAsync(cancellationToken); return user; } public async Task UpdateAsync(User user, CancellationToken cancellationToken) { dbContext.Users.Update(user); await dbContext.SaveChangesAsync(cancellationToken); return user; } }