using YiSha.Util.Model;
using System.Data.Common;
using System.Threading.Tasks;
using System.Collections.Generic;
using YiSha.Entity.TK;
using YiSha.Model.Param.TK;

namespace YiSha.IService.TK
{
    /// <summary>
    /// 创 建:cmzx
    /// 日 期:2021-04-20 16:57
    /// 描 述:图库管理服务接口类
    /// </summary>
    public partial interface IGalleryManagerModelsService
    {
        #region 获取数据
        /// <summary>
        /// 获取列表数据
        /// </summary>
        /// <param name="param">请求参数</param>
        /// <returns></returns>
        Task<List<GalleryManagerModelsEntity>> GetList(GalleryManagerModelsListParam param);

        /// <summary>
        /// 获取分页数据
        /// </summary>
        /// <param name="param">请求参数</param>
        /// <param name="pagination">分页条件</param>
        /// <returns></returns>
        Task<List<GalleryManagerModelsEntity>> GetPageList(GalleryManagerModelsListParam param, Pagination pagination);

        /// <summary>
        /// 获取指定列数据
        /// </summary>
        /// <param name="column">表字段列</param>
        /// <param name="where">条件</param>
        /// <param name="parameters">条件参数</param>
        /// <param name="sort">排序列</param>
        /// <param name="sortType">排序类型</param>
        /// <returns></returns>
        Task<List<GalleryManagerModelsEntity>> GetListColumn(string column, string where, List<DbParameter> parameters, string groupBy = "", string sort = "basecreatetime", string sortType = "desc");

        /// <summary>
        /// 根据主键Id获取数据
        /// </summary>
        /// <param name="id">主键id</param>
        /// <returns></returns>
        Task<GalleryManagerModelsEntity> GetEntity(int id);
        #endregion

        #region 提交数据
        /// <summary>
        /// 保存数据
        /// </summary>
        /// <param name="entity">实体参数</param>
        /// <returns></returns>
        Task SaveForm(GalleryManagerModelsEntity entity);

        /// <summary>
        /// 保存多条数据
        /// </summary>
        /// <param name="list">数据列表</param>
        /// <returns></returns>
        Task<int> InsertMany(List<GalleryManagerModelsEntity> list);

        /// <summary>
        /// 根据主键Id删除数据
        /// </summary>
        /// <param name="ids">主键Id</param>
        /// <param name="del">是否真删除 true真删除 false软删除 默认false</param>
        /// <returns></returns>
        Task<int> DeleteFormById(string ids, bool del = false);

        /// <summary>
        /// 根据条件删除数据
        /// </summary>
        /// <param name="where">where条件</param>
        /// <param name="parameters">参数</param>
        /// <param name="del">是否真删除 true真删除 false软删除 默认false</param>
        /// <returns></returns>
        Task<int> DeleteFormByWhere(string where, List<DbParameter> parameters, bool del = false);

        /// <summary>
        /// 修改多条数据
        /// </summary>
        /// <param name="list">数据列表</param>
        /// <returns></returns>
        Task<int> UpdateMany(List<GalleryManagerModelsEntity> list);

        /// <summary>
        /// 根据条件修改数据
        /// </summary>
        /// <param name="setField">修改字段</param>
        /// <param name="where">where条件</param>
        /// <param name="parameters">参数</param>
        /// <returns></returns>
        Task<int> UpdateFormByWhere(string setField, string where, List<DbParameter> parameters);
        #endregion

        #region 私有方法
        ///// <summary>
        ///// 列表条件过滤
        ///// 建议该方法放在Partial部分类中,因为代码生成时当前类会被覆盖(该方法在生成时将会被注释)
        ///// </summary>
        ///// <param name="param"></param>
        ///// <returns></returns>
        //Expression<Func<GalleryManagerModelsEntity, bool>> ListFilter(GalleryManagerModelsListParam param);
        #endregion
    }
}