using CashLineERP.Contracts.Finance;

namespace CashLineERP.Application.Finance;

public interface ICustomerStatementService
{
    IReadOnlyCollection<CustomerStatementSummaryResponse> GetStatements(long? customerId = null);

    CustomerStatementResponse? GetStatement(long customerStatementId);

    CustomerStatementResponse GenerateStatement(long actorUserId, CreateCustomerStatementRequest request);

    IReadOnlyCollection<CustomerStatementDeliveryLogResponse> GetDeliveryLogs(long customerStatementId);

    CustomerStatementDeliveryLogResponse RecordDelivery(long customerStatementId, long actorUserId, RecordCustomerStatementDeliveryRequest request);
}
