package com.bankaudit.rest.process.service;

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

import org.springframework.web.multipart.commons.CommonsMultipartFile;

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 AuditRatingService {
	
	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);

	AuditRatingDto getAuditByPlanIdAndAuditIdAndStatus(int legalEntityCode,String auditTypeCode, String planId,String auditId, String status, String role);
	
	String updateAuditScheduleComplianceRating(AuditRatingDto auditScheduleWrkTmp);
	
	/*********** Document upload Download Start **********************/
	// String getReferencePathById(Integer legalEntityCode, Integer id,  String status);
	
	Map<String, Integer>  uploadDocuments(Integer legalEntityCode, String auditTypeCode, String auditId, String planId,  String documentType, String documentName,
			String maker, String userRoleId, CommonsMultipartFile[] files, String documentSubType);
	
	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);
}
