namespace CashLineERP.Application.Finance;

public interface ICollectionsWorkbenchRepository
{
    CollectionsWorkbenchSummaryView GetSummary(DateOnly asOfDate);

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

    IReadOnlyCollection<CollectionsFollowUpActionView> GetFollowUpActions(long accountsReceivableInvoiceId);

    CollectionsFollowUpActionView RecordFollowUp(long accountsReceivableInvoiceId, long actorUserId, RecordCollectionsFollowUpCommand command);

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