using Biskilog_Accounting.Shared.CustomModels;
using Biskilog_Accounting.Shared.POSModels;
namespace Biskilog_Accounting.Shared.Interfaces
{
    public interface IAnalytics
    {
        /// 
        /// Fetches a collection of sales transaction made from the specified start date to the end date
        /// 
        /// Specified Start Date
        /// Specified end Date
        /// 
        IEnumerable GetSalesTransaction(DateTime a_start, DateTime a_end);
        /// 
        /// Fetches a collection of in-debt customers
        /// 
        IEnumerable GetInDebtCustomers();
        /// 
        /// Fetches a collection of Product Items which are currently out of stock
        /// 
        /// 
        IEnumerable GetOutOfStockItems();
        /// 
        /// Fetches a collection of the most purchased Product Items within a specified date range
        /// 
        /// 
        /// 
        /// 
        IEnumerable GetMostPurchasedItem(DateTime a_start, DateTime a_end);
        /// 
        /// Fetches a collection of cancelled transaction within a specified date range
        /// 
        /// 
        /// 
        /// 
        IEnumerable GetCancelledSales(DateTime a_start, DateTime a_end);
        /// 
        /// Fetches a collection of transaction made by employees within a specified date range
        /// 
        /// 
        /// 
        /// A dictionary of transactions made by employees with employee name as key
        IEnumerable>> GetEmployeeSales(DateTime a_start, DateTime a_end);
        /// 
        /// Fetches a collection of product price changes with a specified date range
        /// 
        /// 
        /// 
        /// 
        IEnumerable GetPriceChanges(DateTime a_start, DateTime a_end);
    }
}