package com.bankaudit.dao;

import java.util.List;

import com.bankaudit.dto.DataTableResponse;
import com.bankaudit.model.AuditTypeDocumentDetails;
import com.bankaudit.model.AuditTypeDocumentDetailsWrk;
import com.bankaudit.process.model.AuditDocumentDetails;
import com.bankaudit.process.model.AuditDocumentDetailsWrk;

public interface AuditTypeDocumentDetailsDao extends Dao {
	
	/*List<AuditTypeDocumentDetails> getAuditTypeDocumentDetails(Integer legalEntityCode, String auditTypeCode, String documentType,
			String userId, String userRoleId, String status);*/
/*	List<AuditDocumentDetails> getAuditTypeDocumentDetails(Integer legalEntityCode, String auditTypeCode, String documentType,
			String userId, String userRoleId, String status, String documentSubType);*/
	
	//AuditTypeDocumentDetailsWrk getAuditTypeDocumentDetail(Integer legalEntityCode, Integer id, String auditTypeCode, String status);
	AuditDocumentDetailsWrk getAuditTypeDocumentDetail(Integer legalEntityCode, Integer id, String auditTypeCode, String status);
	
	//String getReferencePathById(Integer legalEntityCode, Integer id, String status);
	
	void deleteAuditTypeDocumentDetails(Integer legalEntityCode,Integer id, String auditTypeCode, String statusUnauth);
	
	DataTableResponse getAuditTypeDocumentDetails(Integer legalEntityCode, String search, Integer orderColumn,
			String orderDirection, Integer page, Integer size , String documentType, String documentSubType);

	//new
	String deleteAuditTypeDocumentFromUI(Integer legalEntityCode,Integer id, String auditTypeCode, String status, String entityStatus,
			 String documentType, String documentSubType );
	
	String deleteAllAuditTypeDocument(Integer legalEntityCode, String auditTypeCode,  String documentType, String status, 
			  String documentSubType);
	
	//String updateAuditTypeDocumentDetails(Integer legalEntityCode, String auditTypeCode, String checker,  String status, String authRejRemarks);
	//String updateAuthorizeAuditTypeDocumentDetails(AuditTypeDocumentDetails auditTypeDocumentDetails);
	String updateAuthorizeAuditTypeDocumentDetails(AuditDocumentDetails auditTypeDocumentDetails);
	
	void updateMaker(Integer legalEntityCode, String auditTypeCode,  String maker, String documentType, String documentSubType);
	
	//AuditTypeDocumentDetails getAuditTypeDocumentDetailByAuditType(Integer legalEntityCode,  String auditTypeCode,String status);
	AuditDocumentDetails getAuditTypeDocumentDetailByAuditType(Integer legalEntityCode,  String auditTypeCode,String status, 
			String documentType, String documentSubType);
	
	/*List<Object> getAuditTypeDocumentDetailsByAuditTypeAndStatus(Integer legalEntityCode, String auditTypeCode, String documentType,
			String userId, String userRoleId, String status, String documentSubType);*/
}
