namespace TeleWave.Application.Streaming.GetIptvGuide;

/// <summary>Канал с его программой: то, из чего собирается пара «плейлист + XMLTV».</summary>
public sealed record IptvChannelDto(
    string Slug,
    string Name,
    int? Number,
    Guid? LogoImageId,
    IReadOnlyList<IptvProgrammeDto> Programmes
);

/// <summary>
/// Одна передача. Подряд идущие серии одного шоу склеены в блок — как и на экране зрителя: в гиде
/// нужна программа, а не список файлов, и врезки с заставками сюда не попадают вовсе.
/// </summary>
public sealed record IptvProgrammeDto(
    DateTimeOffset StartsAtUtc,
    DateTimeOffset EndsAtUtc,
    string Title,
    string? SubTitle,
    string? Description,
    Guid? ImageId
);
