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>
35 lines
808 B
C#
35 lines
808 B
C#
using ErsatzTV.Application.Playouts;
|
|
|
|
namespace ErsatzTV.Controllers.Api.Requests;
|
|
|
|
public record PlayoutAlternateScheduleItemRequest(
|
|
int Id,
|
|
int ProgramScheduleId,
|
|
List<DayOfWeek> DaysOfWeek,
|
|
List<int> DaysOfMonth,
|
|
List<int> MonthsOfYear,
|
|
bool LimitToDateRange,
|
|
int StartMonth,
|
|
int StartDay,
|
|
int? StartYear,
|
|
int EndMonth,
|
|
int EndDay,
|
|
int? EndYear)
|
|
{
|
|
public ReplacePlayoutAlternateSchedule ToReplaceItem(int index) =>
|
|
new(
|
|
Id,
|
|
index,
|
|
ProgramScheduleId,
|
|
DaysOfWeek ?? [],
|
|
DaysOfMonth ?? [],
|
|
MonthsOfYear ?? [],
|
|
LimitToDateRange,
|
|
StartMonth,
|
|
StartDay,
|
|
StartYear,
|
|
EndMonth,
|
|
EndDay,
|
|
EndYear);
|
|
}
|