Files
Musify/backend/Musify.Application/Tracks/Responses/TrackApplicationResponse.cs
T
Admin fa45843079 fix(backend): make track media fields and external id nullable
Artist, ExternalId, OriginalPictureName and OriginalAudioName were
non-nullable with '' sentinels, which forced the unique (Source,
ExternalId) index to rely on a filtered "<> ''" clause. Make them
truly nullable and drop the empty-string sentinels, backfilling
existing rows to NULL. Also fixes a formatting regression
(`track != null&&`) introduced alongside the nullability change.
2026-07-17 17:53:57 +02:00

32 lines
873 B
C#

using Musify.Domain.Entities;
using Musify.Domain.ValueObjects;
namespace Musify.Application.Tracks.Responses
{
public record TrackApplicationResponse(
Guid Id,
string Title,
string? Artist,
TrackSource Source,
string? ExternalId,
ProcessingStatus AudioStatus,
int Duration,
int ListensCount,
DateTime CreatedAt,
DateTime UpdatedAt)
{
public static TrackApplicationResponse FromEntity(Track track, int listensCount) =>
new(
track.Id,
track.Title,
track.Artist,
track.Source,
track.ExternalId,
track.AudioTranscodeProcessingStatus,
track.Duration,
listensCount,
track.CreatedAt,
track.UpdatedAt);
}
}