using CashLineERP.Contracts.IslamicFinance;
using CashLineERP.Application.IslamicFinance;

namespace CashLineERP.Application.IslamicFinance.Settlements;

public interface IIslamicFinanceSettlementService
{
    IReadOnlyCollection<IslamicFinanceSettlementResponse> GetSettlements(long? murabahaCaseId = null, string? statusCode = null);
    IslamicFinanceSettlementResponse? GetSettlement(long settlementHeaderId);
    IslamicFinanceSettlementResponse CreateSettlement(CreateIslamicFinanceSettlementRequest request);
    IslamicFinanceSettlementResponse SubmitSettlement(long settlementHeaderId, long actorUserId);
    IslamicFinanceSettlementResponse ApproveSettlement(long settlementHeaderId, long actorUserId);
    IslamicFinanceSettlementResponse CloseSettlement(long settlementHeaderId, long actorUserId);
    IReadOnlyCollection<IslamicFinanceLifecycleHistoryEntryResponse> GetSettlementHistory(long settlementHeaderId);
    IslamicFinanceSettlementAuditResponse? GetSettlementAudit(long settlementHeaderId);
}
