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);
}