package com.bankaudit.rest.process.service;

import java.io.ByteArrayOutputStream;
import java.util.List;

import com.bankaudit.dto.process.AuditRatingComplianceObsScoreReportDto;
import com.bankaudit.dto.process.AuditRatingComplianceScoreDto;
import com.bankaudit.process.model.AuditRatingComplianceObsScore;

public interface AuditRatingComplianceScoreService {

	List<AuditRatingComplianceObsScore> insertAuditComplianceObsScore(int legalEntityCode,String auditId, String unitId, String auditTypeCode, String userId);
	 
	List<AuditRatingComplianceObsScore> getComplianceObsScoreByAuditId(int legalEntityCode,String auditId, String auditTypeCode, String unitId, String userType, String userId, String compRatingStatus); 
	 
	void updateAuditComplianceObsScores(List<AuditRatingComplianceObsScore> auditRatingComplianceObsScores, int legalEntityCode,String auditId, String userType);
	
	AuditRatingComplianceScoreDto getAuditRatingComplianceScores(int legalEntityCode, String auditId, String ratingType, String userType); // Method to calc score
		
	List<AuditRatingComplianceObsScore> getComplianceObsScoreReportByAuditId(int legalEntityCode,String auditId, String userType, String compRatingStatus);
	
	AuditRatingComplianceObsScoreReportDto getComplianceObsScoreReportByAuditIdAndRatingType(int legalEntityCode,String auditId, String ratingType, String userType, String compRatingStatus, String recordsNA);
	
	ByteArrayOutputStream downloadAuditRatingComplianceObsScore(Integer legalEntityCode, String auditTypeCode, String auditId, String role, 
			String ratingComplianceStatus);
}
