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 resolved by its opaque public EntryKey, with both metadata satellites (nulls for non-matching media). Task> GetByEntryKey(string entryKey); }