using Microsoft.AspNetCore.Http;

namespace SharedKernel.Storage
{
    public interface IFileStorage
    {
        // 물리 파일 저장
        Task<FileUploadResult?> SaveFileAsync(IFormFile? file, FileStoragePath path, string[] allowedExtensions, CancellationToken ct = default);

        // 에디터 첨부 파일 저장
        Task<FileUploadResult?> SaveBytesAsync(ReadOnlyMemory<byte> bytes, string extension, FileStoragePath path, CancellationToken ct = default);

        // 이미지 삭제
        void DeleteByUrl(string? url);
    }
}