using FlowAPI.Application.Interfaces; using FlowAPI.Domain.Entities; using FlowAPI.Infrastructure.Data; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace FlowAPI.Infrastructure.Repositories { public class UserAchievementRepository : GenericRepository, IUserAchievementRepository { public UserAchievementRepository(AppDbContext context) : base(context) { } public async Task> GetByUserIdAsync(Guid userId) { return await _dbSet .Include(ua => ua.Achievement) .Where(ua => ua.UserId == userId) .ToListAsync(); } public async Task> GetByUserAndAchievementIdsAsync(Guid userId, IEnumerable achievementIds) { return await _dbSet .Where(ua => ua.UserId == userId && achievementIds.Contains(ua.AchievementId)) .ToListAsync(); } } }