using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using SolarPower.Models;
using SolarPower.Models.SensorType;
using SolarPower.Repository.Interface;

namespace SolarPower.Repository.Interface
{
    public interface ISensorTypeRepository : IRepositoryBase<SensorType>
    {
        Task<List<SensorType>> GetAllSensorAsync();

        /// <summary>
        /// 新增 設備
        /// </summary>
        /// <param name=""></param>
        /// <returns></returns>
        Task AddSensor(SensorType SensorInfo, List<string> properties);

        /// <summary>
        /// 透過sensorEName，取得單一筆資料
        /// </summary>
        /// <param name="sensorEName"></param>
        /// <returns></returns>
        Task<SensorType> GetOneByEnglishNameAsync(string sensorEName);

        /// <summary>
        /// 修改設備資料
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="properties"></param>
        /// <returns></returns>
        Task UpdateSensorInfo(SensorType entity, List<string> properties);

        /// <summary>
        /// 取得單一設備類型 透過 id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<SensorType> GetOneSensorType(int id);

    }
}
