package com.infinite.focus.server.dashboard.userstats;

import java.math.BigDecimal;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;

import com.infinite.focus.server.dashboard.GetDataDashBoardRequest;
import com.infinite.focus.server.dashboard.LabelAndValue;

public interface UserStatsService {
	
	public abstract LinkedHashMap<String, LinkedList<Object>> getOverall(GetDataDashBoardRequest request);
	public abstract LinkedHashMap<String, LinkedList<Object>> getTeachers(GetDataDashBoardRequest request);
	public abstract LinkedHashMap<String, LinkedHashMap<String, LinkedList<Object>>> getStudents(GetDataDashBoardRequest request);
	public abstract LinkedHashMap<String, LinkedList<Object>> getStudentsAndDemographicStrands(GetDataDashBoardRequest request);
	//public abstract LinkedHashMap<String, List<LabelAndValue>> getLogiAttemptsStudentsData(GetDataDashBoardRequest request);
	public abstract LinkedList<LabelAndValue> getLogiAttemptsStudentsData(GetDataDashBoardRequest request);
	public abstract LinkedHashMap<String, List<LabelAndValue>> getLogiAttemptsTeachersData(GetDataDashBoardRequest request);
	public LinkedHashMap<String, LinkedHashMap<String, LinkedList<Object>>> getAverageLoginAttemptTeachers(GetDataDashBoardRequest request);
	public abstract LinkedHashMap<String, LinkedList<Object>> getPercentageByGrades(GetDataDashBoardRequest request);
	public abstract LinkedHashMap<String, LinkedList<Object>> getPercentageByOSForStudent(GetDataDashBoardRequest request);
	public abstract LinkedHashMap<String, LinkedList<Object>> getPercentageByBrowserForStudent(GetDataDashBoardRequest request);
	public abstract LinkedHashMap<String, LinkedList<Object>> getPercentageByOSForInstructor(GetDataDashBoardRequest request);
	public abstract LinkedHashMap<String, LinkedList<Object>> getPercentageByBrowserForInstructor(GetDataDashBoardRequest request);
}
