/**
* Copyright 2014 tgrape Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package ph.fingra.statisticsweb.dao;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import ph.fingra.statisticsweb.domain.App;
import ph.fingra.statisticsweb.domain.AppInfo;
import ph.fingra.statisticsweb.domain.Components;
import ph.fingra.statisticsweb.domain.ComponentsGroup;
import ph.fingra.statisticsweb.domain.CurrPrevNumericValue;
import ph.fingra.statisticsweb.domain.CurrPrevTextValue;
import ph.fingra.statisticsweb.domain.DashBoardSearchParam;
public interface DashBoardDao {
// App ====================================================================
public App getApp(DashBoardSearchParam param);
public AppInfo getAppInfo(DashBoardSearchParam param);
// Perfomance Snapshot ====================================================
public boolean getIsCompare(DashBoardSearchParam param);
public CurrPrevNumericValue getNewUsers(DashBoardSearchParam param);
public CurrPrevNumericValue getActiveUsers(DashBoardSearchParam param);
public CurrPrevNumericValue getSessions(DashBoardSearchParam param);
public CurrPrevNumericValue getSessionLength(DashBoardSearchParam param);
public CurrPrevNumericValue getPageViews(DashBoardSearchParam param);
// Distribution Snapshot ==================================================
public String getDayOfWeek(DashBoardSearchParam param);
public String getTimeOfDay(DashBoardSearchParam param);
public List<Map<String, BigDecimal>> getTopCountries(DashBoardSearchParam param);
public CurrPrevTextValue getTopResolution(DashBoardSearchParam param);
public CurrPrevTextValue getTopAppVersion(DashBoardSearchParam param);
public CurrPrevTextValue getTopOsVersion(DashBoardSearchParam param);
// Components Snapshot ====================================================
public List<ComponentsGroup> getComponentsGroupList(DashBoardSearchParam param);
public List<Components> getComponentsNewUsersList(DashBoardSearchParam param);
public List<Components> getComponentsActiveUsersList(DashBoardSearchParam param);
public List<Components> getComponentsPageViewsList(DashBoardSearchParam param);
public List<Components> getComponentsTimeOfDayList(DashBoardSearchParam param);
public List<Components> getComponentsTopCountriesList(DashBoardSearchParam param);
public List<Components> getComponentsInterGroupCommonList(DashBoardSearchParam param);
public List<Components> getComponentsInterGroupTimeOfDayList(DashBoardSearchParam param);
public List<Components> getComponentsInterGroupTopCountriesList(DashBoardSearchParam param);
// Today Snapshot =========================================================
public CurrPrevNumericValue getTodayNewUsers(DashBoardSearchParam param);
public CurrPrevNumericValue getTodayActiveUsers(DashBoardSearchParam param);
public CurrPrevNumericValue getTodaySessions(DashBoardSearchParam param);
public CurrPrevNumericValue getTodaySessionLength(DashBoardSearchParam param);
public CurrPrevNumericValue getTodayPageViews(DashBoardSearchParam param);
}