namespace BotPages.Core.Abstractions;
///
/// Описание файла, полученного или отправляемого через мессенджер.
///
public sealed class FileDescriptor
{
/// Идентификатор файла в мессенджере.
public required string Id { get; init; }
/// Имя файла.
public required string Name { get; init; }
/// Расширение файла.
public required string Extension { get; init; }
/// Размер файла в байтах.
public long Size { get; init; }
/// MIME-тип файла.
public string? Mime { get; init; }
/// Тип файла.
public FileKind Kind { get; init; } = FileKind.Document;
/// Функция получения потока файла.
public Func> GetStreamAsync { get; init; } = _ => Task.FromResult(Stream.Null);
}