Build ErsatzTV Image / API docs in sync (OpenAPI + endpoint index) (push) Has been skipped
Build ErsatzTV Image / Formatting (changed .cs conform to .editorconfig) (push) Has been skipped
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (push) Successful in 6m23s
Build ErsatzTV Image / Functional E2E (curl contracts) (push) Successful in 14m21s
Build ErsatzTV Image / Build & test (.NET) (push) Successful in 19m9s
Build ErsatzTV Image / Build & push image (amd64) (push) Successful in 12m1s
Co-authored-by: Timothy <timothy.look@gmail.com> Co-committed-by: Timothy <timothy.look@gmail.com>
53 lines
2.3 KiB
C#
53 lines
2.3 KiB
C#
using System.Net;
|
|
using ErsatzTV.Core.Domain.Filler;
|
|
|
|
namespace ErsatzTV.Core.Domain;
|
|
|
|
public class Channel
|
|
{
|
|
public static readonly string NumberValidator = @"^[0-9]+(\.[0-9]{1,2})?$";
|
|
|
|
public Channel(Guid uniqueId) => UniqueId = uniqueId;
|
|
public int Id { get; set; }
|
|
public Guid UniqueId { get; init; }
|
|
public string Number { get; set; }
|
|
public double SortNumber { get; set; }
|
|
public string Name { get; set; }
|
|
public string Group { get; set; }
|
|
public string Categories { get; set; }
|
|
public int FFmpegProfileId { get; set; }
|
|
public FFmpegProfile FFmpegProfile { get; set; }
|
|
public double? SlugSeconds { get; set; }
|
|
public int? WatermarkId { get; set; }
|
|
public ChannelWatermark Watermark { get; set; }
|
|
public int? FallbackFillerId { get; set; }
|
|
public FillerPreset FallbackFiller { get; set; }
|
|
public StreamingMode StreamingMode { get; set; }
|
|
public List<Playout> Playouts { get; set; }
|
|
public List<Artwork> Artwork { get; set; }
|
|
public List<GraphicsElement> GraphicsElements { get; set; }
|
|
public List<ChannelGraphicsElement> ChannelGraphicsElements { get; set; }
|
|
public ChannelStreamSelectorMode StreamSelectorMode { get; set; }
|
|
public string StreamSelector { get; set; }
|
|
public string PreferredAudioLanguageCode { get; set; }
|
|
public string PreferredAudioTitle { get; set; }
|
|
public string PreferredSubtitleLanguageCode { get; set; }
|
|
public ChannelSubtitleMode SubtitleMode { get; set; }
|
|
public ChannelMusicVideoCreditsMode MusicVideoCreditsMode { get; set; }
|
|
public string MusicVideoCreditsTemplate { get; set; }
|
|
public ChannelSongVideoMode SongVideoMode { get; set; }
|
|
public ChannelPlayoutSource PlayoutSource { get; set; }
|
|
public ChannelPlayoutMode PlayoutMode { get; set; }
|
|
public int? MirrorSourceChannelId { get; set; }
|
|
public Channel MirrorSourceChannel { get; set; }
|
|
public TimeSpan? PlayoutOffset { get; set; }
|
|
public ChannelTranscodeMode TranscodeMode { get; set; }
|
|
public ChannelIdleBehavior IdleBehavior { get; set; }
|
|
public bool IsEnabled { get; set; }
|
|
public bool ShowInEpg { get; set; }
|
|
|
|
// Immutable creation-provenance (auto-tuned vs user-created); stamped once at insert, never on edit.
|
|
public ChannelOrigin Origin { get; set; }
|
|
public string WebEncodedName => WebUtility.UrlEncode(Name);
|
|
}
|