using ErsatzTV.Core.Domain;
using ErsatzTV.Core.Interfaces.Repositories;

namespace ErsatzTV.Application.ChannelTemplates;

internal static class ChannelTemplateDefault
{
    public static async Task<int?> GetDefaultTemplateId(
        IConfigElementRepository configElementRepository,
        CancellationToken cancellationToken)
    {
        Option<int> maybeDefault =
            await configElementRepository.GetValue<int>(
                ConfigElementKey.ChannelTemplatesDefaultTemplateId,
                cancellationToken);
        int? result = null;
        foreach (int id in maybeDefault)
        {
            result = id;
        }

        return result;
    }
}
