using TeleWave.Domain.Programming;

namespace TeleWave.Application.Programming.Templates.Junctions;

public sealed record JunctionElementDto(
    Guid Id,
    int Position,
    JunctionElementKind Kind,
    Guid? GroupId,
    string? GroupName,
    Guid? BumperTemplateId,
    string? BumperTemplateName,
    Guid? BumperVariantId,
    string? BumperVariantName,
    JunctionAmountMode AmountMode,
    int AmountValue,
    bool IsRequired,
    string? ChoiceKey,
    int ChoiceWeight,
    JunctionConditions? Conditions
);

public sealed record JunctionTemplateDto(
    Guid Id,
    string Name,
    int? MaxTotalSeconds,
    /// <summary>Сколько каналов ссылается на стык — он общий, и это надо видеть до правки.</summary>
    int ChannelUsageCount,
    IReadOnlyList<JunctionElementDto> Elements
);
