using Microsoft.Extensions.Options;
using TeleWave.Infrastructure.Media;
namespace TeleWave.Api.Common;
///
/// Лимиты приёма файла, собранные в одно место. Они живут в двух разных секциях конфигурации
/// (Media и Storage), но проверяются всегда вместе и только на входе загрузки —
/// хендлеру незачем знать про обе секции и тащить два в сигнатуре.
///
public sealed class UploadLimits(
IOptions media,
IOptions storage
)
{
/// Потолок размера загружаемого файла.
public long MaxUploadBytes { get; } = media.Value.MaxUploadBytes;
/// Сколько места должно остаться свободным после приёма файла.
public long MinFreeSpaceBytes { get; } = storage.Value.MinFreeSpaceBytes;
}