Adds per-playout REST for classic-playout alternate schedules and
block-playout templates, plus the default-deco read-side deferred from S3:
- GET/PUT /api/playouts/{id}/alternate-schedules (Classic only; 422 otherwise)
- GET/PUT /api/playouts/{id}/templates (Block only; 422 otherwise)
- PlayoutResponseModel gains decoId/decoName (GetPlayoutById includes Deco)
PUT assigns Index from array order (top = highest priority, last = catch-all
default), mirroring the Blazor editors. Alternate-schedule PUT requires a
non-empty list and existing ProgramScheduleIds; template PUT requires existing
TemplateIds and any supplied DecoTemplateId. Regenerates the OpenAPI spec.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
15 lines
497 B
C#
15 lines
497 B
C#
using ErsatzTV.Application.Scheduling;
|
|
|
|
namespace ErsatzTV.Controllers.Api.Requests;
|
|
|
|
public record ReplacePlayoutTemplatesRequest(List<PlayoutTemplateItemRequest> Items)
|
|
{
|
|
// Index is assigned from array order (top-to-bottom priority), mirroring the Blazor editor.
|
|
public ReplacePlayoutTemplateItems ToCommand(int playoutId) =>
|
|
new(
|
|
playoutId,
|
|
(Items ?? [])
|
|
.Select((item, index) => item.ToReplaceItem(index))
|
|
.ToList());
|
|
}
|