namespace TeleWave.Application.Common.Interfaces;

/// <summary>
/// Хранилище звука блоков заставок под bumpers/{templateId}. Фон-картинка блока живёт в общем реестре
/// изображений (см. IImageStore). Звук НЕ режется на HLS — подаётся входом в рендер заставки.
/// </summary>
public interface IBumperTemplateStorage
{
    Task SaveAudioAsync(
        Guid templateId,
        string extension,
        Stream content,
        CancellationToken cancellationToken
    );

    Task DeleteAudioAsync(Guid templateId, CancellationToken cancellationToken);

    /// <summary>Удалить все файлы блока (при удалении самого блока).</summary>
    Task DeleteTemplateAsync(Guid templateId, CancellationToken cancellationToken);

    /// <summary>Абсолютный путь к загруженному звуку или null (нет расширения / файл отсутствует).</summary>
    string? AudioPath(Guid templateId, string? extension);
}
