#nullable enable
using ErsatzTV.Core.Scheduling;

namespace ErsatzTV.Core.Api.Scheduling;

// API response DTO for a program schedule. Mirrors the Application ProgramScheduleViewModel's
// config fields but omits the header-only optimistic-concurrency token (issue #253, #288): the
// schedule-items GET/PUT carry Version as an ETag header, so the SPA never reads it from the body.
public record ProgramScheduleResponseModel(
    int Id,
    string Name,
    bool KeepMultiPartEpisodesTogether,
    bool TreatCollectionsAsShows,
    bool ShuffleScheduleItems,
    bool RandomStartPoint,
    FixedStartTimeBehavior FixedStartTimeBehavior,
    int? PadToNearestMinute);
