using TeleWave.Domain.Broadcast;
namespace TeleWave.Application.Broadcast;
public sealed record ChannelSummaryDto(Guid Id, string Name, string Slug, bool IsEnabled);
/// Общие для канала настройки ТВ-заставок (стиль/звук/текст — на блоках/подблоках).
public sealed record BumperSettingsDto(BumperFont Font, BumperSelection Selection);
/// Подблок (текст-вариант): свой текст + правило показа + вес поверх стиля/звука блока.
public sealed record BumperTextVariantDto(
Guid Id,
int Position,
string Name,
BumperTextKind Kind,
string NowLabel,
string NextLabel,
string Line1,
string Line2,
BumperTrigger Trigger,
int Weight
);
/// Блок заставки: своё оформление + звук + подблоки. — длина звука (сек).
public sealed record BumperTemplateDto(
Guid Id,
int Position,
bool IsDefault,
string Name,
string BackgroundColor,
string BackgroundColor2,
string AccentColor,
string TextColor,
Guid? BackgroundImageId,
bool HasAudio,
double? AudioDurationSeconds,
IReadOnlyList Variants
);
public sealed record ChannelDto(
Guid Id,
string Name,
string Slug,
bool IsEnabled,
int? Number,
int UtcOffsetMinutes,
TimeOnly DayStartTime,
Guid? TemplateId,
bool BumpersEnabled,
BumperSettingsDto Bumper,
IReadOnlyList BumperTemplates,
Guid? FillerAssetId,
/// Оверлеи и фильтр зрительской части — всё опционально (см. 6.8).
ViewerSettingsDto Viewer
);
/// Как канал выглядит у зрителя: логотип-оверлей, часы, аналоговый фильтр.
public sealed record ViewerSettingsDto(
Guid? LogoImageId,
LogoCorner LogoCorner,
double LogoOpacity,
bool ShowClock,
double AnalogFilterStrength
);