using TeleWave.Application.Common.Interfaces; using TeleWave.Domain.Broadcast; namespace TeleWave.Application.Broadcast.Bumpers; /// /// Чистая сборка из уже разрешённых входов (готовые строки, пути к /// постеру/фону/звуку). Общая точка для фонового рендерера заставок расписания и превью в админке. /// public static class BumperSpecFactory { public static BumperRenderSpec Build( BumperOptions bumper, BumperTemplate template, int alignedDurationSeconds, BumperSpecInputs inputs ) => new( alignedDurationSeconds, bumper.Width, bumper.Height, template.BackgroundColor, template.BackgroundColor2, template.AccentColor, template.TextColor, template.Font == BumperFont.Serif ? bumper.FontFileSerif : bumper.FontFileSans, inputs.Lines, inputs.BackgroundAbsolutePath, inputs.AudioPath, inputs.PosterAbsolutePath, inputs.ClipAbsolutePath, // Джингл назначен — он и звучит, подрезанный под ролик; не назначен — играет // оригинальная дорожка ролика. UseClipAudio: inputs.ClipAbsolutePath is not null && inputs.AudioPath is null ); }