using SolarPower.Models;
using SolarPower.Models.PowerStation;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;


namespace SolarPower.Repository.Interface
{
    public interface IOverviewRepository : IRepositoryBase<Overview>
    {

        Task<List<int>> GetAllCityIdAsync();
        Task<Overview> GetOverviewByPowerStationIds(List<int> powerStationIds);
        Task<List<CapacityDataTable>> GetCapacityDataTableByPowerStationIds(List<int> powerStationIds);
        Task<List<PowerStation>> GetListPowerStationByPowerStationIds(List<int> powerStationIds);
        Task<List<PowerStation>> GetSolarByCity(MyUser User, UseStatusCityGetPowerStation post);
        Task<List<PowerIrradiance>> GetListPowerIrradianceTodayByPowerStationId(int powerStationId, string nowDay);
        Task<List<PowerIrradiance>> GetListPowerIrradiance7dayByPowerStationId(int powerStationId, string nowDay);
        Task<List<PowerIrradiance>> GetListPowerIrradianceMonthByPowerStationId(int powerStationId, string nowDay);
        Task<List<PowerIrradiance>> GetListPowerIrradianceYearByPowerStationId(int powerStationId, string nowDay);
        Task<List<ExceptionDataTable>> GetExceptionTable(ExceptionSent post);
        Task<List<CheckBox>> GetInvertCheckBoxByPowerStationId(int powerStationId, string db_name);
        Task<List<InverterHistory>> GetListInverterByPowerStationIdAndDate(int powerStationId, string nowDay);

        Task<List<InverterHistory>> GetListInverterDayByPowerStationId(int powerStationId, string day);
        Task<List<InverterHistory>> GetListInverterMonthByPowerStationId(int powerStationId, string month);
        Task<List<InverterHistory>> GetListInverterQuaryerlyByPowerStationId(int powerStationId, string startMonth, string endMonth);
        Task<List<InverterHistory>> GetListInverterYearByPowerStationId(int powerStationId, string year);
        Task<List<HistoryTable>> GethistoryTable(HistorySent post);
    }
}
