namespace ThingsGateway.SqlSugar
{
    public partial interface ISugarQueryable<T>
    {
        ISugarQueryable<T> Having(IFuncModel model);
        ISugarQueryable<T> OrderBy(List<OrderByModel> models);
        ISugarQueryable<T> GroupBy(List<GroupByModel> models);
        DynamicCoreSelectModel Select(string expShortName, List<string> columns, params object[] args);
        ISugarQueryable<T> Select(List<SelectModel> models);
        ISugarQueryable<TResult> Select<TResult>(List<SelectModel> models);
        ISugarQueryable<T> Select(List<SelectModel> models, AsNameFormatType type);
        ISugarQueryable<T> AS(string tableName, string shortName);
        ISugarQueryable<T> AddJoinInfo(string tableName, string shortName, IFuncModel models, JoinType type = JoinType.Left);
        ISugarQueryable<T> AddJoinInfo(List<JoinInfoParameter> joinInfoParameters);
    }
}
