using Microsoft.EntityFrameworkCore;
using TeleWave.Application.Common.Interfaces;
using TeleWave.Domain.Broadcast;

namespace TeleWave.Application.Broadcast.Bumpers;

/// <summary>Общее для команд блока заставки: загрузка вместе с подблоками и строками.</summary>
internal static class BumperTemplateLoader
{
    public static Task<BumperTemplate?> LoadAsync(
        IAppDbContext dbContext,
        Guid templateId,
        CancellationToken cancellationToken
    ) =>
        dbContext
            .BumperTemplates.Include(t => t.Variants)
            .FirstOrDefaultAsync(t => t.Id == templateId, cancellationToken);

    /// <summary>Строки подблока «Сейчас / Далее» — с них начинается новый блок.</summary>
    public static IReadOnlyList<BumperLine> DefaultLines() =>
        [
            BumperLine.Create(0, BumperLineStyle.Label, BumperLineColor.Accent, "СЕЙЧАС"),
            BumperLine.Create(1, BumperLineStyle.Title, BumperLineColor.Text, "{now.title}"),
            BumperLine.Create(2, BumperLineStyle.Label, BumperLineColor.Accent, "ДАЛЕЕ"),
            BumperLine.Create(3, BumperLineStyle.Title, BumperLineColor.Text, "{next.title}"),
        ];
}
