package com.bankaudit.rest.process.dao;

import java.time.LocalDate;
import java.util.List;

import com.bankaudit.dao.Dao;
import com.bankaudit.dto.DataTableResponse;
import com.bankaudit.dto.process.AuditRatingDto;
import com.bankaudit.process.model.AuditSchedule;
import com.bankaudit.process.model.AuditScheduleWrkTmp;

public interface AuditRatingDao extends Dao{
	
	DataTableResponse getAuditRatingList(int legalEntityCode,String userId, String unitCode, String role, String search,Integer orderColumn, String orderDirection, Integer page, Integer size,	
			String documentType, String documentSubType, LocalDate financialYear, String auditTypeCode, List<LocalDate>  financialYearStrtEndList);

	//AuditSchedule getAuditByPlanIdAndAuditIdAndStatus(int legalEntityCode,String auditTypeCode, String planId,String auditId, String status, String role);
	AuditRatingDto getAuditByPlanIdAndAuditIdAndStatus(int legalEntityCode,String auditTypeCode, String planId,String auditId, String status, String role);
	
	String updateAuditScheduleRatingIfAuthorized(AuditRatingDto auditSchedule);
	
	String DeleteAuditScheduleWrkTmpRatingIfAuthorized(AuditScheduleWrkTmp auditSchedule);
	
	AuditSchedule getAuditByPlanIdAndAuditId(int legalEntityCode, String auditTypeCode, String planId,	
			 String auditId, String complianceRatingFor ) ;
	
	AuditSchedule getAuditByAuditId(int legalEntityCode,  String auditId) ;
	
	/*********** Document upload Download Start **********************/	
	//String getReferencePathById(Integer legalEntityCode, Integer id,  String status);
	
	void updateMakerToWrkAndMaster(Integer legalEntityCode, String auditTypeCode, String auditId, String planId,  String maker, String documentType, String documentSubType);
	
	/*String  authorizeAuditRatingDocuments(Integer legalEntityCode, String auditTypeCode, String auditId, String planId,  String checker, String status,
			String authRejRemarks, String documentType,  String documentSubType, String   role);*/
	
	String  authorizeAuditRatingDocuments(AuditRatingDto auditRatingDto);

	String deleteAuditRatingDocumentsFromUI(Integer legalEntityCode,Integer id, String auditTypeCode, String auditId, String planId, String  status, String entityStatus,  String documentType,  String documentSubType);
	
	String deleteAllAuditRatingDocumentsFromUI(Integer legalEntityCode, String auditTypeCode,  String auditId, String planId,  String status, String documentType,  String documentSubType);
	
	 /* List<Object> getAuditRatingDocumentDetails(Integer legalEntityCode, String auditTypeCode, String auditId, String planId, 
				String documentType, String userId, String userRoleId, String status,    String documentSubType);	 */
	
	/*********** Document upload Download End **********************/
	 String getOnsiteComplianceStatus(int legalEntityCode,String auditTypeCode, String planId,String auditId);
	 void deleteOnsiteComplianceDataFromWrkTmp(int legalEntityCode,String auditTypeCode, String planId,String auditId);
}
