shoc-backend/SeaHaven.Services/Interfaces/IServicePorts.cs
2026-07-24 16:36:48 -03:00

31 lines
1.1 KiB
C#

using Microsoft.AspNetCore.Http;
namespace SeaHaven.Services.Interfaces
{
public interface IFileStoragePort
{
Task<string> SaveFileAsync(IFormFile file);
}
/// <summary>
/// Narrow vendor completion-document storage port. Implemented in the API layer so the
/// service layer can persist/read uploaded vendor documents without owning filesystem paths.
/// Path resolution is shared with the scan worker to avoid duplicate rules.
/// </summary>
public interface IVendorDocumentStoragePort
{
Task SaveAsync(int vendorId, int dispatchId, string storedFileName, Stream content, CancellationToken cancellationToken);
Stream OpenRead(int vendorId, int dispatchId, string storedFileName);
void Delete(int vendorId, int dispatchId, string storedFileName);
}
public interface IDispatchEmailPort
{
Task<bool> SendDispatchEmailAsync(string emailTo, string subject, string htmlBody, string? replyTo);
}
public interface IVendorTokenPort
{
Task<string> GetOrCreateActiveTokenAsync(int vendorId);
}
}