using CashLineERP.Contracts.Finance;

namespace CashLineERP.Application.Finance;

public interface ISupplierStatementService
{
    IReadOnlyCollection<SupplierStatementSummaryResponse> GetStatements(long? supplierId = null);

    SupplierStatementResponse? GetStatement(long supplierStatementId);

    SupplierStatementResponse GenerateStatement(long actorUserId, CreateSupplierStatementRequest request);

    IReadOnlyCollection<SupplierStatementDeliveryLogResponse> GetDeliveryLogs(long supplierStatementId);

    SupplierStatementDeliveryLogResponse RecordDelivery(long supplierStatementId, long actorUserId, RecordSupplierStatementDeliveryRequest request);

    SupplierStatementDeliveryLogResponse AcknowledgeDelivery(long supplierStatementDeliveryLogId, long actorUserId, AcknowledgeSupplierStatementDeliveryRequest request);
}
