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 filtered to one medium ("cut" | "session" | "mix").
Task>> GetPaged(
string? medium,
int page,
int pageSize,
string? sortColumn = null,
bool sortDescending = false);
/// 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);
}