using DeepDrftModels.DTOs; using Models.Common; using NetBlocks.Models; namespace DeepDrftPublic.Client.Services; /// /// Track metadata fetch abstraction. Both SSR and WASM renders are served by /// TrackClientDataService in this assembly, which delegates to /// over HTTP. Components inject this single seam /// so they do not branch on render mode. /// public interface ITrackDataService { Task>> GetPage( int pageNumber, int pageSize, string? sortColumn = null, bool sortDescending = false, string? searchText = null, string? album = null, string? genre = null); /// Distinct non-null albums with track counts and a representative cover key. Task>> GetAlbums(); /// Distinct non-null genres with track counts. Task>> GetGenres(); Task> GetTrack(string trackId); /// /// Fetches a random track from the public library for instant play. Success with a value on a /// hit; success with a null value when the library is empty (a valid state, not a failure); /// failure on any other transport error. /// Task> GetRandomTrack(); }