using CashLineERP.Application.IslamicFinance;

namespace CashLineERP.Application.IslamicFinance.Settlements;

public interface IIslamicFinanceSettlementRepository
{
    IReadOnlyCollection<IslamicFinanceSettlementDetailView> GetSettlements(long? murabahaCaseId = null, string? statusCode = null);
    IslamicFinanceSettlementDetailView? GetSettlement(long settlementHeaderId);
    IslamicFinanceSettlementDetailView Create(CreateIslamicFinanceSettlementCommand command);
    IslamicFinanceSettlementDetailView Submit(long settlementHeaderId, long actorUserId);
    IslamicFinanceSettlementDetailView Approve(long settlementHeaderId, long actorUserId);
    IslamicFinanceSettlementDetailView Close(long settlementHeaderId, long actorUserId);
    IReadOnlyCollection<IslamicFinanceLifecycleHistoryEntryView> GetSettlementHistory(long settlementHeaderId);
    IslamicFinanceSettlementAuditView? GetSettlementAudit(long settlementHeaderId);
}
