using TeleWave.Application.Common.Interfaces;
using TeleWave.Application.Programming.Groups;
using TeleWave.Application.Programming.Templates;
namespace TeleWave.Application.Tests.Support;
///
/// Сборка сервисов группы для тестов: их четыре и они цепляются друг за друга, а в тестах нужен
/// каждый раз один и тот же набор. В приложении это делает контейнер.
///
internal static class GroupServices
{
public static DynamicGroupResolver Dynamic(IAppDbContext db) =>
new(new GroupFilterMatcher(db), new GroupElementResolver(db));
public static GroupStatsService Stats(IAppDbContext db) =>
new(db, new GroupElementResolver(db), Dynamic(db));
/// Писатель слотов: ему нужен ещё и признак «группа роликов» — их в слот не пускают.
public static InterstitialGroups Interstitials(IAppDbContext db) => new(db);
public static SlotWriter Slots(IAppDbContext db) => new(db, Interstitials(db));
}