Add track status filter and counts, album track ids and bulk track deletion

GET /tracks/users/{userId} accepts repeated status values and returns the
albums each track belongs to. GET /tracks/users/{userId}/status-counts,
GET /albums/{id}/tracks/ids and DELETE /tracks with a list of track ids
are new.
This commit is contained in:
2026-09-25 01:14:59 +02:00
parent 9928840577
commit d839a72700
18 changed files with 773 additions and 8 deletions
@@ -0,0 +1,21 @@
using FluentValidation;
using Musify.Api.DataTransferObjects.Tracks;
namespace Musify.Api.Validators.Tracks
{
public sealed class DeleteTracksRequestValidator : AbstractValidator<DeleteTracksRequest>
{
public const int MaxTracksPerRequest = 100;
public DeleteTracksRequestValidator()
{
RuleFor(x => x.TrackIds)
.NotEmpty()
.Must(ids => ids.Count <= MaxTracksPerRequest)
.WithMessage($"At most {MaxTracksPerRequest} tracks can be deleted at once.");
RuleForEach(x => x.TrackIds)
.NotEmpty();
}
}
}