using CashLineERP.Contracts.Finance;

namespace CashLineERP.Application.Finance;

public interface ICollectionsWorkbenchService
{
    CollectionsWorkbenchSummaryResponse GetSummary(DateOnly? asOfDate = null);

    IReadOnlyCollection<CollectionsQueueItemResponse> GetQueue(DateOnly? asOfDate = null, long? customerId = null, string? currencyCode = null, bool actionRequiredOnly = false);

    IReadOnlyCollection<CollectionsFollowUpActionResponse> GetFollowUpActions(long accountsReceivableInvoiceId);

    CollectionsFollowUpActionResponse RecordFollowUp(long accountsReceivableInvoiceId, long actorUserId, RecordCollectionsFollowUpRequest request);

    CollectionsCustomerSummaryResponse GetCustomerSummary(long customerId, DateOnly? asOfDate = null, string? currencyCode = null);
}
