namespace CashLineERP.Application.Finance;

public interface ICustomerStatementRepository
{
    IReadOnlyCollection<CustomerStatementSummaryView> GetStatements(long? customerId = null);

    CustomerStatementDetailView? GetStatement(long customerStatementId);

    CustomerStatementDetailView GenerateStatement(long actorUserId, CreateCustomerStatementCommand command);

    IReadOnlyCollection<CustomerStatementDeliveryLogView> GetDeliveryLogs(long customerStatementId);

    CustomerStatementDeliveryLogView RecordDelivery(long customerStatementId, long actorUserId, RecordCustomerStatementDeliveryCommand command);
}
