using ErsatzTV.Core.Domain;

namespace ErsatzTV.Core.Scheduling;

public record PlayoutSchedulerResult(
    PlayoutBuilderState State,
    List<PlayoutItem> PlayoutItems,
    PlayoutBuildWarnings Warnings)
{
    // #392: the exact clock-boundary target the last scheduled item advanced CurrentTime to when a
    // schedule-level pad left an OFFLINE gap (no filler emitted). Non-null ONLY for such an advance; the
    // day-boundary anchor clamp in PlayoutBuilder reads it (by exact CurrentTime equality) so an offline
    // pad advance survives the seam. Transient/in-memory only — never serialized to the PlayoutAnchor.
    public DateTimeOffset? ClockPadOfflineTarget { get; init; }
}
