namespace CashLineERP.Application.Finance;

public interface ISupplierStatementRepository
{
    IReadOnlyCollection<SupplierStatementSummaryView> GetStatements(long? supplierId = null);

    SupplierStatementDetailView? GetStatement(long supplierStatementId);

    SupplierStatementDetailView GenerateStatement(long actorUserId, CreateSupplierStatementCommand command);

    IReadOnlyCollection<SupplierStatementDeliveryLogView> GetDeliveryLogs(long supplierStatementId);

    SupplierStatementDeliveryLogView RecordDelivery(long supplierStatementId, long actorUserId, RecordSupplierStatementDeliveryCommand command);

    SupplierStatementDeliveryLogView AcknowledgeDelivery(long supplierStatementDeliveryLogId, long actorUserId, AcknowledgeSupplierStatementDeliveryCommand command);
}
