/*
 * 
 */
package com.bankaudit.service;

import java.util.List;

import com.bankaudit.dto.DataTableResponse;
import com.bankaudit.model.RiskScoreAuditGrp;

/**
 * The Interface {@link RiskScoreAuditGrpService} define the methods that can be
 * exposed to controller layer in order to implements rest end-points and define
 * the business logic.
 *
 * @author amit.patel
 * @version 1.0
 */
public interface RiskScoreAuditGrpService {

	/**
	 * This method is use to Update risk score audit grp.
	 *
	 * @param riskScoreAuditGrp
	 *            specify the risk score audit grp
	 */
	void updateRiskScoreAuditGrp(RiskScoreAuditGrp riskScoreAuditGrp);

	/**
	 * This method is use to Gets the risk score audit grp.
	 *
	 * @param legalEntityCode
	 *            specify the legal entity code
	 * @param auditGroupCode
	 *            specify the audit group code
	 * @param auditTypeCode
	 *            specify the audit type code
	 * @return the list .
	 */
	List<RiskScoreAuditGrp> getRiskScoreAuditGrp(Integer legalEntityCode, String auditGroupCode,
			String auditTypeCode);

	List<com.bankaudit.model.RiskScoreAuditGrp> getRiskScoreAuditGrps();

	/**
	 * This method is use to Creates the risk score audit grp.
	 *
	 * @param riskScoreAuditGrps
	 *            specify the risk score audit grps
	 * @throws Exception
	 *             the exception
	 */
	void createRiskScoreAuditGrp(List<RiskScoreAuditGrp> riskScoreAuditGrps)throws Exception;

	/**
	 * This method is use to Update risk score audit grp.
	 *
	 * @param riskScoreAuditGrps
	 *            specify the risk score audit grps
	 */
	void updateRiskScoreAuditGrp(List<RiskScoreAuditGrp> riskScoreAuditGrps);

	/**
	 * This method is use to Gets the risk score audit grps.
	 *
	 * @param legalEntityCode
	 *            specify the legal entity code
	 * @param search
	 *            specify the search
	 * @param orderColumn
	 *            specify the order column
	 * @param orderDirection
	 *            specify the order direction
	 * @param page
	 *            specify the page
	 * @param size
	 *            specify the size
	 * @return the data table response .
	 */
	DataTableResponse getRiskScoreAuditGrps(Integer legalEntityCode, String search, Integer orderColumn,
			String orderDirection, Integer page, Integer size);

	/**
	 * This method is use to Gets the risk score audit grp by legal entity code
	 * and audit type code.
	 *
	 * @param parseInt
	 *            specify the parse int
	 * @param auditTypeCode
	 *            specify the audit type code
	 * @param status
	 *            specify the status
	 * @return the list .
	 */
	List<RiskScoreAuditGrp> getRiskScoreAuditGrpByLegalEntityCodeAndAuditTypeCode(int parseInt,
			String auditTypeCode,String status);

	/**
	 * This method is use to Checks if is risk score audit grp.
	 *
	 * @param legalEntityCode
	 *            specify the legal entity code
	 * @param auditTypeCode
	 *            specify the audit type code
	 * @return the boolean .
	 */
	Boolean isRiskScoreAuditGrp(Integer legalEntityCode,String auditTypeCode);
}
