using Microsoft.EntityFrameworkCore; using PlaylistShared.Api.Data; using PlaylistShared.Api.Entities; namespace PlaylistShared.Api.Services; public class TrackAdditionLogService { private readonly ApplicationDbContext _db; public TrackAdditionLogService(ApplicationDbContext db) { _db = db; } public async Task LogAdditionAsync(Guid sharedPlaylistId, string trackId, Guid addedByUserId) { var log = new TrackAdditionLogEntity { Id = Guid.NewGuid(), SharedPlaylistId = sharedPlaylistId, TrackId = trackId, AddedByUserId = addedByUserId, AddedAtUtc = DateTime.UtcNow }; _db.TrackAdditionLogs.Add(log); await _db.SaveChangesAsync(); } public async Task IsTrackAddedByUserAsync(Guid sharedPlaylistId, string trackId, Guid userId) { return await _db.TrackAdditionLogs .AnyAsync(l => l.SharedPlaylistId == sharedPlaylistId && l.TrackId == trackId && l.AddedByUserId == userId); } public async Task RemoveLogsForTrackAsync(Guid sharedPlaylistId, string trackId) { var logs = await _db.TrackAdditionLogs .Where(l => l.SharedPlaylistId == sharedPlaylistId && l.TrackId == trackId) .ToListAsync(); _db.TrackAdditionLogs.RemoveRange(logs); await _db.SaveChangesAsync(); } }