add new scheduling engine, basic scripted schedule system (#2337)

* start to add content to scheduling engine

* add first content instruction

* add search content

* allow scripted schedule creation

* don't use scheduling engine in sequential playout builder, yet
This commit is contained in:
Jason Dove
2025-08-24 03:11:58 +00:00
committed by GitHub
parent 53f281ce32
commit bbddd50f00
11 changed files with 902 additions and 34 deletions
@@ -0,0 +1,21 @@
using ErsatzTV.Core.Domain;
using ErsatzTV.Core.Domain.Scheduling;
namespace ErsatzTV.Core.Scheduling.Engine;
public interface ISchedulingEngineState
{
// state
int PlayoutId { get; }
PlayoutBuildMode Mode { get; }
int Seed { get; }
DateTimeOffset CurrentTime { get; }
DateTimeOffset Finish { get; }
// result
Option<DateTimeOffset> RemoveBefore { get; }
bool ClearItems { get; }
List<PlayoutItem> AddedItems { get; }
System.Collections.Generic.HashSet<int> HistoryToRemove { get; }
List<PlayoutHistory> AddedHistory { get; }
}