package com.bankaudit.rest.process.service;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.bankaudit.dto.DataTableResponse;
import com.bankaudit.dto.process.AlertsDto;
import com.bankaudit.dto.process.AlertsResponseDto;
import com.bankaudit.process.model.AuditSchedule;
import com.bankaudit.process.model.TaskDetails;

public interface AlertToDoService {
	
	Map<String, Integer> getAlertsCount(Integer legalEntityCode, String userId, String role);
	
	DataTableResponse  getAlertsByUserIdAlertIdDataTable(int legalEntityCode,String userId,String alertId,String role, String search,Integer orderColumn,
			String orderDirection, Integer page, Integer size);
	
	List<AlertsResponseDto> getListofAlerts(Integer legalEntityCode, String userId, String role, String alertId);
	
	Map<String, Integer> getAlertsCountByUserIdRole(Integer legalEntityCode, String userId, String role, String unitId);
	
	//List<AuditSchedule> getPlanAuth(Integer legalEntityCode, String userId, String role, String unitId);
	DataTableResponse getPlanAuth(Integer legalEntityCode, String search, Integer orderColumn, String orderDirection,
			 Integer page, Integer size, String userId, String role, String unitId, String alertName);
	
	DataTableResponse getRiskAssessedAlerts(Integer legalEntityCode, String search, Integer orderColumn, String orderDirection,
			 Integer page, Integer size, String userId, String role, String unitId, String alertName);
	
	DataTableResponse getValidationInitiatedAlerts(Integer legalEntityCode, String search, Integer orderColumn, String orderDirection,
			 Integer page, Integer size, String userId, String role, String unitId, String alertName);
	
	DataTableResponse getValidationSubmittedAlerts(Integer legalEntityCode, String search, Integer orderColumn, String orderDirection,
			 Integer page, Integer size, String userId, String role, String unitId, String alertName);
	
	DataTableResponse getActionPlanInitiatedAlerts(Integer legalEntityCode, String search, Integer orderColumn, String orderDirection,
			 Integer page, Integer size, String userId, String role, String unitId, String alertName);
	
	DataTableResponse getRCSAClosureAlerts(Integer legalEntityCode, String search, Integer orderColumn, String orderDirection,
			 Integer page, Integer size, String userId, String role, String unitId, String alertName);
	
	//List<TaskDetails> getTaskClosureAlerts(Integer legalEntityCode, String userId, String role, String unitId);
	//List<TaskDetails> getOpenTaskAlerts(Integer legalEntityCode, String userId, String role, String unitId);
	//List<TaskDetails> getOverDueTaskAlerts(Integer legalEntityCode, String userId, String role, String unitId);
	
	DataTableResponse getTaskOpenCloseOverdueAlerts(Integer legalEntityCode, String search, Integer orderColumn, String orderDirection,
			 Integer page, Integer size, String userId, String role, String unitId, String alertName);

}
