using TeleWave.Domain.Broadcast;

namespace TeleWave.Application.Broadcast.Bumpers;

/// <summary>Строка заставки: роль, цвет из палитры блока и текст с плейсхолдерами.</summary>
public sealed record BumperLineDto(BumperLineStyle Style, BumperLineColor Color, string Text);

/// <summary>Подблок (текст-вариант): свои строки, фон и правило показа поверх оформления блока.</summary>
public sealed record BumperTextVariantDto(
    Guid Id,
    int Position,
    string Name,
    BumperTrigger Trigger,
    BumperBackground Background,
    int Weight,
    IReadOnlyList<BumperLineDto> Lines,
    /// <summary>Ролик-подложка для фона <see cref="BumperBackground.Clip"/>.</summary>
    Guid? BackgroundClipShowId
);

/// <summary>Блок заставки: оформление + звук + подблоки. <see cref="AudioDurationSeconds"/> — длина звука (сек).</summary>
public sealed record BumperTemplateDto(
    Guid Id,
    string Name,
    BumperFont Font,
    string BackgroundColor,
    string BackgroundColor2,
    string AccentColor,
    string TextColor,
    Guid? BackgroundImageId,
    bool HasAudio,
    double? AudioDurationSeconds,
    /// <summary>Во скольких врезках стыков используется блок — блоки общие, и это надо видеть до правки.</summary>
    int UsageCount,
    IReadOnlyList<BumperTextVariantDto> Variants
);
