using CashLineERP.Contracts.IslamicFinance;

namespace CashLineERP.Application.IslamicFinance.Shariah;

public interface IShariahReviewService
{
    IReadOnlyCollection<IslamicFinanceShariahReviewResponse> GetReviewCases(
        string? statusCode = null,
        long? financingRequestId = null,
        long? productProfileId = null);

    IslamicFinanceShariahReviewResponse? GetReviewCase(long shariahReviewCaseId);
    IslamicFinanceShariahReviewResponse CreateReviewCase(CreateIslamicFinanceShariahReviewRequest request);
    IslamicFinanceShariahReviewResponse SubmitReviewCase(long shariahReviewCaseId, long actorUserId);
    IslamicFinanceShariahReviewResponse RecommendOutcome(
        long shariahReviewCaseId,
        RecommendIslamicFinanceShariahOutcomeRequest request,
        long actorUserId);

    IslamicFinanceShariahReviewResponse ApproveOutcome(long shariahReviewCaseId, long actorUserId);
}
