d29de83116
Adds POST/GET payee-1099/{id}/w9, mirroring the expense-receipt upload:
IFileStorage saves to finance/w9/{id}{ext}, content-type derived from the
blob extension. Frontend dialog (edit mode) gains a W-9 file input and an
auth-correct blob "View W-9" link. Payee1099Service ctor now takes
IFileStorage; tests updated with an in-memory FakeStorage.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
18 lines
833 B
C#
18 lines
833 B
C#
using ROLAC.API.DTOs.Payee;
|
|
namespace ROLAC.API.Services;
|
|
|
|
public interface IPayee1099Service
|
|
{
|
|
Task<List<Payee1099ListItemDto>> GetAllAsync(bool includeInactive);
|
|
Task<Payee1099Dto?> GetByIdAsync(int id);
|
|
Task<int> CreateAsync(SavePayee1099Request r);
|
|
Task UpdateAsync(int id, SavePayee1099Request r);
|
|
Task DeleteAsync(int id);
|
|
/// <summary>Full decrypted TIN. Caller must be authorized (gated at controller).</summary>
|
|
Task<string?> RevealTinAsync(int id);
|
|
/// <summary>Stores the uploaded W-9 blob and records its path. Throws KeyNotFoundException if the payee is missing.</summary>
|
|
Task SaveW9Async(int id, Stream content, string fileName);
|
|
/// <summary>Opens the stored W-9 blob; null when none is attached.</summary>
|
|
Task<(Stream stream, string contentType)?> OpenW9Async(int id);
|
|
}
|