using ErsatzTV.Application.Artworks; using ErsatzTV.Core; using ErsatzTV.Core.Api.Channels; using ErsatzTV.Core.Api.LibraryBrowse; using ErsatzTV.Core.Domain; using ErsatzTV.Core.Scheduling; namespace ErsatzTV.Application.Channels; public record CreateChannelFromLineup( string Name, string Number, string Group, string Categories, ArtworkContentTypeModel Logo, bool IsEnabled, bool ShowInEpg, int TemplateId, CreateChannelFromLineupAdvancedOptions Advanced, List Lineup) : IRequest>; public record CreateChannelFromLineupAdvancedOptions( PlaybackOrder? PlaybackOrder = null, int? FFmpegProfileId = null, int? WatermarkId = null, int? FallbackFillerId = null, int? PreRollFillerId = null, int? MidRollFillerId = null, int? PostRollFillerId = null, ChannelStreamSelectorMode? StreamSelectorMode = null, string StreamSelector = null, string PreferredAudioLanguageCode = null, string PreferredAudioTitle = null, ChannelPlayoutSource? PlayoutSource = null, ChannelPlayoutMode? PlayoutMode = null, StreamingMode? StreamingMode = null, string PreferredSubtitleLanguageCode = null, ChannelSubtitleMode? SubtitleMode = null, ChannelMusicVideoCreditsMode? MusicVideoCreditsMode = null, string MusicVideoCreditsTemplate = null, ChannelSongVideoMode? SongVideoMode = null, ChannelTranscodeMode? TranscodeMode = null, ChannelIdleBehavior? IdleBehavior = null, bool? ShuffleScheduleItems = null, bool? RandomStartPoint = null, FixedStartTimeBehavior? FixedStartTimeBehavior = null, IReadOnlyList Clear = null); public record CreateChannelFromLineupItem( LibraryBrowseMediaType MediaType, CollectionType CollectionType, int? CollectionId, int? MultiCollectionId, int? SmartCollectionId, int? RerunCollectionId, int? MediaItemId, int? PlaylistId);