using DeepDrftModels.DTOs; using Models.Common; using NetBlocks.Models; namespace DeepDrftPublic.Client.Services; /// /// Release read abstraction (Phase 9). Both SSR and WASM renders are served by /// ReleaseClientDataService in this assembly, which delegates to /// over HTTP. Components inject this single seam /// so they do not branch on render mode — mirrors . /// public interface IReleaseDataService { /// Paged releases, optionally narrowed by medium ("cut" | "session" | "mix"), free-text search, and genre. Task>> GetPaged( string? medium, int page, int pageSize, string? sortColumn = null, bool sortDescending = false, string? search = null, string? genre = null); /// Single release with both metadata satellites (nulls for non-matching media). Task> GetById(long id); /// /// The Mix waveform datum. Success with a value when present; success with a null value when /// no datum is stored (a valid state, not a failure); failure on any other transport error. /// Task> GetMixWaveform(long id); }