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; }