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);
}
