using SoftwareInstallationContracts.BindingModels;
using SoftwareInstallationContracts.ViewModels;

namespace SoftwareInstallationContracts.BusinessLogicsContracts
{
    public interface IReportLogic
    {
        /// <summary>
        /// Получение списка магазинов с указанием, в каких изделиях используются
        /// </summary>
        /// <returns></returns>
        List<ReportShopPackagetViewModel> GetShopPackages();

		/// <summary>
		/// Получение списка компонент с указанием, в каких изделиях используются
		/// </summary>
		/// <returns></returns>
		public List<ReportPackageComponentViewModel> GetPackageComponent();

		/// <summary>
		/// Получение списка заказов за определенный период
		/// </summary>
		/// <param name="model"></param>
		/// <returns></returns>
		List<ReportGroupOrdersViewModel> GetGroupOrders(ReportBindingModel model);

        /// <summary>
        /// Получение списка заказов за определенный период
        /// </summary>
        public List<ReportOrdersViewModel> GetOrders(ReportBindingModel model);

		/// <summary>
		/// Сохранение компонент в файл-Word
		/// </summary>
		/// <param name="model"></param>
		void SaveShopsTableToWordFile(ReportBindingModel model);

        void SavePackagesToWordFile(ReportBindingModel model);

        void SavePackageComponentToExcelFile(ReportBindingModel model);

        void SaveOrdersToPdfFile(ReportBindingModel model);

        /// <summary>
        /// Сохранение компонент с указаеним продуктов в файл-Excel
        /// </summary>
        /// <param name="model"></param>
        void SaveShopPackageToExcelFile(ReportBindingModel model);
        /// <summary>
        /// Сохранение заказов в файл-Pdf
        /// </summary>
        /// <param name="model"></param>
        void SaveGroupOrdersToPdfFile(ReportBindingModel model);
    }
}
