Files
ersatztv/ErsatzTV.Core/Scheduling/Engine/ISchedulingEngine.cs
T
Jason DoveandGitHub 4e2310d008 add all content sources to scripted schedules (#2340)
* add show content

* add multi collection content

* add smart collection content

* add playlist content

* fix infinite loop

* add marathon content
2025-08-24 14:39:34 +00:00

57 lines
1.7 KiB
C#

using ErsatzTV.Core.Domain;
using ErsatzTV.Core.Domain.Filler;
namespace ErsatzTV.Core.Scheduling.Engine;
public interface ISchedulingEngine
{
ISchedulingEngine WithPlayoutId(int playoutId);
ISchedulingEngine WithMode(PlayoutBuildMode mode);
ISchedulingEngine WithSeed(int seed);
ISchedulingEngine WithReferenceData(PlayoutReferenceData referenceData);
ISchedulingEngine BuildBetween(DateTimeOffset start, DateTimeOffset finish);
ISchedulingEngine RemoveBefore(DateTimeOffset removeBefore);
ISchedulingEngine RestoreOrReset(Option<PlayoutAnchor> maybeAnchor);
// content definitions
Task AddCollection(string key, string collectionName, PlaybackOrder playbackOrder);
Task AddMarathon(
string key,
Dictionary<string, List<string>> guids,
List<string> searches,
string groupBy,
bool shuffleGroups,
PlaybackOrder itemPlaybackOrder,
bool playAllItems);
Task AddMultiCollection(string key, string multiCollectionName, PlaybackOrder playbackOrder);
Task AddPlaylist(string key, string playlist, string playlistGroup);
Task AddSmartCollection(string key, string smartCollectionName, PlaybackOrder playbackOrder);
Task AddSearch(string key, string query, PlaybackOrder playbackOrder);
Task AddShow(string key, Dictionary<string, string> guids, PlaybackOrder playbackOrder);
// content instructions
bool AddCount(
string content,
int count,
Option<FillerKind> fillerKind,
string customTitle,
bool disableWatermarks);
// control instructions
ISchedulingEngine WaitUntil(TimeOnly waitUntil, bool tomorrow, bool rewindOnReset);
PlayoutAnchor GetAnchor();
ISchedulingEngineState GetState();
}