using DeepDrftModels.Enums;

namespace DeepDrftAPI.Models;

/// <summary>
/// Body of <c>PUT api/track/meta/{id}</c>. Metadata-only — EntryKey is immutable and never
/// travels over this surface.
/// </summary>
/// <remarks>
/// <paramref name="ImagePath"/> follows tri-state semantics distinct from the other optional
/// fields: <c>null</c> leaves the existing value unchanged, an empty string clears it, and a
/// non-empty value is the images-vault entry key to link.
/// </remarks>
public record UpdateTrackMetadataRequest(
    string TrackName,
    string Artist,
    string? Album,
    string? Genre,
    string? Description,
    DateOnly? ReleaseDate,
    string? ImagePath = null,
    ReleaseType? ReleaseType = null,
    ReleaseMedium? Medium = null,
    int? TrackNumber = null);
