using CashLineERP.Contracts.Finance;

namespace CashLineERP.Application.Finance;

public interface IAccountsReceivableInvoiceService
{
    IReadOnlyCollection<AccountsReceivableInvoiceResponse> GetInvoices();

    AccountsReceivableInvoiceResponse? GetInvoice(long accountsReceivableInvoiceId);

    AccountsReceivableInvoiceResponse CreateInvoice(CreateAccountsReceivableInvoiceRequest request);

    AccountsReceivableInvoiceResponse SubmitInvoice(long accountsReceivableInvoiceId, long actorUserId);

    AccountsReceivableInvoiceResponse ApproveInvoice(long accountsReceivableInvoiceId, long actorUserId);

    AccountsReceivableInvoiceResponse PostInvoice(long accountsReceivableInvoiceId, long actorUserId);
}
