// Path: NotificationAnalyser/app/src/main/java/com/tierep/notificationanalyser/NotificationAppView.java
// public class NotificationAppView {
//     public String AppName;
//     public Integer Notifications;
//     public Integer MaxNotifications;
// 
//     public NotificationAppView() {
//         this.AppName = "";
//         this.Notifications = 0;
//         this.MaxNotifications = 0;
//     }
// 
//     /**
//      *
//      * @param appName The name of the app.
//      * @param notifications The number of notifications from the app.
//      * @param maxNotifications The maximum number of notifications from any app.
//      */
//     public NotificationAppView(String appName, Integer notifications, Integer maxNotifications) {
//         this.AppName = appName;
//         this.Notifications = notifications;
//         this.MaxNotifications = maxNotifications;
//     }
// }
// 
// Path: NotificationAnalyser/app/src/main/java/com/tierep/notificationanalyser/NotificationDateView.java
// public class NotificationDateView {
//     public Date Date;
//     public Integer Notifications;
// 
//     public NotificationDateView() {
//         this.Date = null;
//         this.Notifications = 0;
//     }
// 
//     public NotificationDateView(Date date, Integer notifications) {
//         this.Date = date;
//         this.Notifications = notifications;
//     }
// }


import com.j256.ormlite.dao.Dao;
import com.tierep.notificationanalyser.NotificationAppView;
import com.tierep.notificationanalyser.NotificationDateView;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;
package com.tierep.notificationanalyser.models;



/**
 * NotificationItem DAO.
 *
 * Created by pieter on 24/09/14.
 */
public interface NotificationItemDao extends Dao<NotificationItem, Integer> {
    public List<NotificationAppView> getOverviewToday() throws SQLException;

    public List<NotificationAppView> getOverviewDay(Date date) throws SQLException;

    public List<NotificationAppView> getOverviewWeek(Date date) throws SQLException;

    public List<NotificationAppView> getOverviewMonth(Date date) throws SQLException;

    public List<NotificationItem> getOverviewAppDay(Date date, String appName) throws SQLException;

    public List<NotificationItem> getOverviewAppWeek(Date date, String appName) throws SQLException;

    public List<NotificationItem> getOverviewAppMonth(Date date, String appName) throws SQLException;

    /**
     * @param days The number of previous days to fetch (counting backwards, starting from today).
     * @return An ordered ascending list on the Date.
     * @throws SQLException
     */
// Path: NotificationAnalyser/app/src/main/java/com/tierep/notificationanalyser/NotificationAppView.java
// public class NotificationAppView {
//     public String AppName;
//     public Integer Notifications;
//     public Integer MaxNotifications;
// 
//     public NotificationAppView() {
//         this.AppName = "";
//         this.Notifications = 0;
//         this.MaxNotifications = 0;
//     }
// 
//     /**
//      *
//      * @param appName The name of the app.
//      * @param notifications The number of notifications from the app.
//      * @param maxNotifications The maximum number of notifications from any app.
//      */
//     public NotificationAppView(String appName, Integer notifications, Integer maxNotifications) {
//         this.AppName = appName;
//         this.Notifications = notifications;
//         this.MaxNotifications = maxNotifications;
//     }
// }
// 
// Path: NotificationAnalyser/app/src/main/java/com/tierep/notificationanalyser/NotificationDateView.java
// public class NotificationDateView {
//     public Date Date;
//     public Integer Notifications;
// 
//     public NotificationDateView() {
//         this.Date = null;
//         this.Notifications = 0;
//     }
// 
//     public NotificationDateView(Date date, Integer notifications) {
//         this.Date = date;
//         this.Notifications = notifications;
//     }
// }


// Path: NotificationAnalyser/app/src/main/java/com/tierep/notificationanalyser/models/NotificationItemDao.java
import com.j256.ormlite.dao.Dao;
import com.tierep.notificationanalyser.NotificationAppView;
import com.tierep.notificationanalyser.NotificationDateView;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;

package com.tierep.notificationanalyser.models;



/**
 * NotificationItem DAO.
 *
 * Created by pieter on 24/09/14.
 */
public interface NotificationItemDao extends Dao<NotificationItem, Integer> {
    public List<NotificationAppView> getOverviewToday() throws SQLException;

    public List<NotificationAppView> getOverviewDay(Date date) throws SQLException;

    public List<NotificationAppView> getOverviewWeek(Date date) throws SQLException;

    public List<NotificationAppView> getOverviewMonth(Date date) throws SQLException;

    public List<NotificationItem> getOverviewAppDay(Date date, String appName) throws SQLException;

    public List<NotificationItem> getOverviewAppWeek(Date date, String appName) throws SQLException;

    public List<NotificationItem> getOverviewAppMonth(Date date, String appName) throws SQLException;

    /**
     * @param days The number of previous days to fetch (counting backwards, starting from today).
     * @return An ordered ascending list on the Date.
     * @throws SQLException
     */
    public List<NotificationDateView> getSummaryLastDays(int days) throws SQLException;