Sube carpetas API, API.Tests, Application y Domain del Backend

This commit is contained in:
FrancoRu
2026-09-18 13:35:59 -03:00
parent bbb09554bb
commit 2eb4eeef03
572 changed files with 56405 additions and 0 deletions
@@ -0,0 +1,40 @@
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
namespace Application.Utils.Helper.SupabaseHelper;
/// <summary>
/// Narrow raw-storage boundary over the Supabase Storage client, implemented by SupabaseHelper.
/// </summary>
public interface ISupabaseRawStorage
{
/// <summary>
/// Uploads raw content to objectPath in bucket.
/// </summary>
/// <param name="objectPath">The exact destination path within the bucket.</param>
/// <param name="content">The content stream to upload.</param>
/// <param name="bucket">Target bucket; null uses the configured SupaBase:BucketName.</param>
Task UploadRawAsync(string objectPath, Stream content, string? bucket = null);
/// <summary>
/// Lists raw objects under prefix in bucket.
/// </summary>
/// <param name="prefix">The bucket-relative path prefix to list.</param>
/// <param name="bucket">Target bucket; null uses the configured SupaBase:BucketName.</param>
Task<IReadOnlyList<SupabaseStorageEntry>> ListRawAsync(string prefix, string? bucket = null);
/// <summary>
/// Removes the raw object at objectPath in bucket.
/// </summary>
/// <param name="objectPath">The exact object path within the bucket.</param>
/// <param name="bucket">Target bucket; null uses the configured SupaBase:BucketName.</param>
Task RemoveRawAsync(string objectPath, string? bucket = null);
/// <summary>
/// Downloads the raw content of the object at objectPath in bucket.
/// </summary>
/// <param name="objectPath">The exact object path within the bucket.</param>
/// <param name="bucket">Target bucket; null uses the configured SupaBase:BucketName.</param>
Task<byte[]> DownloadRawAsync(string objectPath, string? bucket = null);
}
@@ -0,0 +1,8 @@
using System;
namespace Application.Utils.Helper.SupabaseHelper;
/// <summary>
/// Minimal listing metadata for a raw Supabase Storage object, decoupled from the third-party Supabase.Storage.FileObject type so fakes don't need to construct it.
/// </summary>
public sealed record SupabaseStorageEntry(string Name, DateTimeOffset? UpdatedAt);