package com.bankaudit.service;

import java.util.List;

import com.bankaudit.dto.DataTableResponse;
import com.bankaudit.dto.process.MaintRatingModelDto;
import com.bankaudit.model.MaintFormula;
import com.bankaudit.model.MaintRatingCategory;
import com.bankaudit.model.MaintRatingGrade;
import com.bankaudit.model.MaintRatingModelWrk;
import com.bankaudit.model.MaintRatingSubCategory;
import com.bankaudit.process.model.IfcRatingParameterMapping;

public interface MaintRatingModelService   {	

	List<MaintRatingModelWrk> getRatingModelBy(Integer legalEntityCode, String rmCode, String status);
	
	DataTableResponse getAllRatingModel(Integer legalEntityCode, String search,Integer orderColumn, String orderDirection, Integer page, Integer size);
	
	MaintRatingModelDto getRatingModelParameterDetails(Integer legalEntityCode, String rmCode, String status);
	
	MaintRatingModelWrk saveRatingModelParameterDetails(MaintRatingModelDto maintRatingModelDto)  throws Exception;
	
	MaintRatingModelWrk updateRatingModelParameterDetails(MaintRatingModelDto maintRatingModelDto) throws Exception;
	 
	String authorizeRatingModelParameterDetails(MaintRatingModelWrk maintRatingModelWrk) throws Exception;
	
	List<IfcRatingParameterMapping> getInputValues(Integer legalEntityCode, String auditTypeCode);
	
	List<MaintFormula> getFactor(Integer legalEntityCode, Integer noOfInputs);
	
	List<MaintRatingGrade> getGrades(Integer legalEntityCode, String rmCode);
	
	List<MaintRatingCategory> getRatingCategory(Integer legalEntityCode );
	
	List<MaintRatingSubCategory> getRatingSubCategory(Integer legalEntityCode,  String categoryCode);
	
	void deleteRatingModelBy(Integer legalEntityCode, String rmCode, String status);	
	void deleteRatingParameterDetailsBy(Integer legalEntityCode, String rmCode, String paramCode, String status);	 
	void deleteRatingParameterRangeBy(Integer legalEntityCode, String rmCode, String paramCode, String id, String status);	
	void deleteRatingParameterCategoryMappingBy(Integer legalEntityCode, String rmCode, String paramCode, String categoryCode, String subCategoryCode, String status);
	void deleteRatingParameterModelOverlayBy(Integer legalEntityCode, String rmCode, String level, String categoryCode,  String criteriaCode, String status);
}
