feat(tracks): add user listening history

Record a listening-history entry when a stream ticket is issued and expose GET /users/{id}/listening-history to read it back.
This commit is contained in:
2026-07-14 04:54:35 +02:00
parent bbc115ca84
commit 5c1edc0dc7
9 changed files with 882 additions and 5 deletions
@@ -50,6 +50,8 @@ namespace Musify.Infrastructure.Persistence
public DbSet<UploadIntent> UploadIntents => Set<UploadIntent>();
public DbSet<ListeningHistory> ListeningHistories => Set<ListeningHistory>();
public async Task<IDatabaseTransaction> BeginTransactionAsync(System.Data.IsolationLevel isolationLevel, CancellationToken cancellationToken)
{
var transaction = await Database.BeginTransactionAsync(isolationLevel, cancellationToken);
@@ -58,7 +60,7 @@ namespace Musify.Infrastructure.Persistence
private sealed class DatabaseTransaction(IDbContextTransaction inner) : IDatabaseTransaction
{
public Task CommitAsync(CancellationToken cancellationToken = default) =>
public Task CommitAsync(CancellationToken cancellationToken) =>
inner.CommitAsync(cancellationToken);
public ValueTask DisposeAsync() => inner.DisposeAsync();