package com.bankaudit.rest.process.dao;

import java.util.List;

import com.bankaudit.dao.Dao;
import com.bankaudit.dto.process.AuditGradingBasicDtlsDto;
import com.bankaudit.dto.process.AuditGradingDto;
import com.bankaudit.model.MaintGradingParamCompositeRatingDtls;
import com.bankaudit.model.MaintGradingParamScoreMatrix;
import com.bankaudit.model.MaintGradingQsnBasicDtls;
import com.bankaudit.model.MaintGradingQsnDtls;
import com.bankaudit.process.model.AuditGradingParamCompositeRatingDtls;
import com.bankaudit.process.model.AuditRating;

public interface AuditGradingDao extends Dao   {
	
	 List<MaintGradingQsnBasicDtls> getMaintGradingQsnBasicDtls(Integer legalEntityCode, String auditTypeCode);
 
	List<MaintGradingQsnDtls> getMaintGradingQsnDetails(Integer legalEntityCode, String auditTypeCode);
	
	List<MaintGradingParamCompositeRatingDtls> getMaintGradingParamCompositeRatingDtls(Integer legalEntityCode, String auditTypeCode);
	
	List<Object[]> getAuditGradingDynamicMappingDetails(Integer legalEntityCode, String auditTypeCode, String auditId);
	
	void insertParamDtlsIntoAuditGradingParamDtls(Integer legalEntityCode, String auditTypeCode, String auditId);
	
	AuditGradingDto getMyAuditGrading(Integer legalEntityCode, String auditTypeCode, String auditId, String userUnitType);
	
	void cleanUpBeforeInitiateGrading(Integer legalEntityCode, String auditTypeCode, String auditId);
	
	void deleteAuditGradingQsoDtlsRO(Integer legalEntityCode, String auditTypeCode, String auditId);
	
	void deleteAuditGradingQsoDtlsHO(Integer legalEntityCode, String auditTypeCode, String auditId);
	
	AuditGradingBasicDtlsDto getAuditDetails(Integer legalEntityCode, String auditTypeCode, String auditId);
	
	MaintGradingParamScoreMatrix getGradingParamScoreMatrixValue(Integer legalEntityCode, String auditTypeCode, Double score);
	
	List<AuditGradingParamCompositeRatingDtls> getCompositeRatingCategoryScore(Integer legalEntityCode, String auditTypeCode, String auditId);
	
	AuditRating getAuditRating(Integer legalEntityCode, String auditTypeCode, String auditId);
	
	AuditGradingDto getMyAuditGradingCompliance(Integer legalEntityCode, String auditTypeCode, String auditId);
}
