using BPA.SAAS.Manage.Application.Device.Dtos.ProductFunction;
using BPA.SAAS.Manage.Core.Base;
using BPA.SAAS.Manage.Core.Product;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BPA.SAAS.Manage.Application.Device.Interface
{
    public interface IProductFunctionService
    {
        /// <summary>
        /// 获取功能基础信息列表
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        Task<PageUtil> GetProductFunctionPage(ProductFunctionPageBase inputDto);
        /// <summary>
        /// 查询所有功能信息
        /// </summary>
        /// <returns></returns>
        Task<List<ProductFunctionDto>> GetProductFunction();
        Task<List<ProductFunctionView>> GetProductFunction(string deviceId);
        Task<List<ProductFunctionView>> GetProductFunction_alm(string deviceId);

        /// <summary>
        /// 添加功能
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        Task<bool> AddProductFunction(ProductFunctionBaseDto inputDto);
        /// <summary>
        /// 修改功能
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        Task<bool> UpdateProductFunction(ProductFunctionBaseDto inputDto);
        /// <summary>
        /// 删除功能
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        Task<bool> DeleteProductFunction(List<string> ids);
        /// <summary>
        /// 根据功能id查询功能参数
        /// </summary>
        /// <returns></returns>
        Task<List<BPA_ProductFunctionAction>> GetProductFunctionActionList(string productFunctionId);
        /// <summary>
        /// 查询所有功能参数
        /// </summary>
        /// <returns></returns>
        Task<List<BPA_ProductFunctionAction>> GetProductFunctionActionList();
        /// <summary>
        /// 添加功能参数
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        Task<bool> AddProductFunctionAction(ProductFunctionActionBaseDto inputDto);
        /// <summary>
        /// 修改功能参数
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        Task<bool> UpdateProductFunctionAction(ProductFunctionActionBaseDto inputDto);
        /// <summary>
        /// 删除功能参数
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        Task<bool> DeleteProductFunctionAction(List<string> ids);
    }
}
