using Microsoft.EntityFrameworkCore; using TaskTracker.Core.Entities; using TaskTracker.Core.Interfaces; using TaskTracker.Infrastructure.Data; namespace TaskTracker.Infrastructure.Repositories; public class ContextEventRepository(TaskTrackerDbContext db) : IContextEventRepository { public async Task CreateAsync(ContextEvent contextEvent) { contextEvent.Timestamp = DateTime.UtcNow; db.ContextEvents.Add(contextEvent); await db.SaveChangesAsync(); return contextEvent; } public async Task> GetRecentAsync(int minutes = 30) { var since = DateTime.UtcNow.AddMinutes(-minutes); return await db.ContextEvents .Where(c => c.Timestamp >= since) .OrderByDescending(c => c.Timestamp) .ToListAsync(); } public async Task> GetByTaskIdAsync(int taskId) { return await db.ContextEvents .Where(c => c.WorkTaskId == taskId) .OrderByDescending(c => c.Timestamp) .ToListAsync(); } }