GET /api/v1/channels/auto-tune/members lists the distinct content sources a proposed auto-tune channel's server-generated SmartCollection resolves to — parent shows for the TV axes (ItemCount = query-matching episodes), movies for the movie-genre axis — reusing the existing PagedLibraryBrowseItemsResponseModel (no new schema). The handler runs the server-owned AutoTuneAxisMap.GenerateQuery through ISearchIndex (client never sends Lucene, per #69 PR1) and rolls matching leaf items up to their distinct sources, mirroring GetSmartCollectionItems so the DetailPanel preview matches what the built playout will contain. Backend child of #383 (Auto-Tune DetailPanel milestone); read-only, cold review acceptable. Handler + controller tests (9 new). OpenAPI + endpoint-index regenerated; d.ts unchanged (reuses existing schema). Docs: api-conventions §5, decisions.md 2026-07-17, domain-model. fixes #384 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
14 lines
573 B
C#
14 lines
573 B
C#
using ErsatzTV.Core.Api.LibraryBrowse;
|
|
using ErsatzTV.Core.Domain;
|
|
|
|
namespace ErsatzTV.Application.Channels;
|
|
|
|
// Read-only enumeration of the distinct content-source members a proposed auto-tune channel's
|
|
// server-generated SmartCollection query resolves to (issue #384). The client passes axis+value; the
|
|
// server owns query generation (AutoTuneAxisMap.GenerateQuery) — the client never sends Lucene.
|
|
public record GetAutoTuneChannelMembers(
|
|
AutoTuneAxis Axis,
|
|
string Value,
|
|
int PageNum,
|
|
int PageSize) : IRequest<PagedLibraryBrowseItemsResponseModel>;
|