Files
GymLogAI/GymLogAI.Persistence/Repositories/WorkoutRepository.cs
T
2026-04-19 13:12:04 +03:00

29 lines
986 B
C#

using GymLogAI.Application.Interfaces;
using GymLogAI.Core.Entities;
using Microsoft.EntityFrameworkCore;
namespace GymLogAI.Persistence.Repositories;
public sealed class WorkoutRepository(AppDbContext dbContext) : IWorkoutRepository
{
public async Task<Workout> AddAsync(Workout workout, CancellationToken cancellationToken)
{
dbContext.Workouts.Add(workout);
await dbContext.SaveChangesAsync(cancellationToken);
return workout;
}
public async Task<IReadOnlyCollection<Workout>> GetHistoryAsync(Guid userId, CancellationToken cancellationToken)
{
return await dbContext.Workouts
.AsNoTracking()
.Include(x => x.WorkoutExercises)
.ThenInclude(x => x.Exercise)
.Include(x => x.WorkoutExercises)
.ThenInclude(x => x.Sets)
.Where(x => x.UserId == userId)
.OrderByDescending(x => x.PerformedAtUtc)
.ToListAsync(cancellationToken);
}
}