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.process.model.AuditLetterUserInputs;
import com.bankaudit.process.model.AuditLetterUserInputsWrk;
import com.bankaudit.process.model.AuditSchedule;
import com.bankaudit.process.model.AuditScheduleWrk;
import com.bankaudit.process.model.AuditTeam;

public interface AuditPlanUpdateDao extends Dao{
	
	DataTableResponse getAuditsList(int legalEntityCode,String userId, String search,Integer orderColumn,	String orderDirection,
			Integer page, Integer size, List<String> unitList, LocalDate financialYear, String auditTypeCode, List<LocalDate>  financialYearStrtEndList);
	
	AuditSchedule getAuditByPlanIdAndAuditId(int legalEntityCode,String auditTypeCode, String planId,String auditId);
	
	List<AuditTeam> getAuditTeamsByAuditId(int legalEntityCode,String auditTypeCode, String planId,String auditId, String status);
	
	void deleteAuditTeam(Integer legalEntityCode, String auditId, String statusUnauth);

	List<AuditSchedule> getAuditScheduleUpdateList(int legalEntityCode, String userId, String search, Integer orderColumn,
			String orderDirection, Integer page, Integer size );

	AuditScheduleWrk getAuditScheduleWrk(Integer legalEntityCode, String auditTypeCode, String planId, String auditId);
	
	AuditSchedule getAuditSchedule(Integer legalEntityCode, String auditTypeCode, String planId, String auditId);

	void deleteAuditSchedule(Integer legalEntityCode, String auditTypeCode, String planId, String auditId);

	AuditSchedule getAuditScheduleWrkByPlanIdAndAuditId(int legalEntityCode, String auditTypeCode, String planId, String auditId);

	AuditLetterUserInputsWrk getAuditLetterUserInputsWrk(Integer legalEntityCode, String auditTypeCode, String planId, String auditId);
	AuditLetterUserInputs getAuditLetterUserInputs(Integer legalEntityCode, String auditTypeCode, String planId, String auditId) ;
	void deleteDirectiveLetterUserInput(Integer legalEntityCode, String auditTypeCode, String planId, String auditId);
	
}
