using FlowAPI.Application.Interfaces; using FlowAPI.Domain.Entities; using FlowAPI.Infrastructure.Data; using Microsoft.EntityFrameworkCore; namespace FlowAPI.Infrastructure.Repositories { public class HabitRecordRepository : GenericRepository, IHabitRecordRepository { public HabitRecordRepository(AppDbContext context) : base(context) { } public async Task> GetAllByUserIdAsync(Guid userId) { return await _dbSet .Where(r => r.UserId == userId) .OrderByDescending(r => r.CheckedDate) .AsNoTracking() .ToListAsync(); } public async Task GetTodayRecordAsync(Guid userId, string habitName) { var today = DateTime.UtcNow.Date; return await _dbSet .FirstOrDefaultAsync(r => r.UserId == userId && r.HabitName == habitName && r.CheckedDate.Date == today); } public async Task GetRecordForDateAsync(Guid userId, string habitName, DateTime date) { var targetDate = date.Date; return await _dbSet .FirstOrDefaultAsync(r => r.UserId == userId && r.HabitName == habitName && r.CheckedDate.Date == targetDate); } } }