using ROLAC.API.DTOs.Disbursement;
using ROLAC.API.DTOs.Shared;

namespace ROLAC.API.Services;

public interface IDisbursementService
{
    Task<List<PayeeGroupDto>> GetApprovedUnpaidGroupedAsync();
    Task<IssueChecksResultDto> IssueChecksAsync(IssueChecksRequest r);
    Task<PagedResult<CheckListItemDto>> GetRegisterAsync(
        int page, int pageSize, string? status, string? search, DateOnly? from, DateOnly? to);
    Task<CheckDetailDto?> GetByIdAsync(int id);
    Task VoidAsync(int id, string? reason);
    Task AcknowledgeReceiptAsync(int id, Stream signature, string fileName, string signedName);
    Task<(Stream stream, string contentType)?> OpenSignatureAsync(int id);
    Task<(Stream stream, string contentType, string fileName)?> RenderPdfAsync(int id);
    Task<(Stream stream, string contentType, string fileName)?> RenderReceiptPdfAsync(int id);
}
