package icu.mhb.mybatisplus.plugln.core.str.func;

import java.util.function.Predicate;

import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;

/**
 * String类型Join函数接口
 *
 * @author mahuibo
 * @Title: JoinStrFunc
 * @email mhb0409@qq.com
 * @time 2024/6/27
 */
@SuppressWarnings("all")
public interface JoinStrFunc<Children> {
//
//    /**
//     * 设置别名
//     *
//     * @param alias 别名
//     * @return children
//     */
//    Children alias(String alias);
//
//    /**
//     * 查询全部字段
//     *
//     * @return children
//     */
//    Children selectAll();
//
//    /**
//     * 过滤查询字段
//     *
//     * @param predicate 过滤条件
//     * @return children
//     */
//    Children select(Predicate<TableFieldInfo> predicate);
//
//    /**
//     * 查询指定字段
//     *
//     * @param columns 字段
//     * @return children
//     */
//    Children select(String... columns);
//
//    /**
//     * 查询字段并设置别名
//     *
//     * @param column 字段
//     * @param alias  别名
//     * @return children
//     */
//    Children selectAs(String column, String alias);
//
//    /**
//     * 排序：手写SQL排序
//     *
//     * @param orderBySql 排序SQL
//     * @return children
//     */
//    Children orderBySql(String orderBySql);
//
//    /**
//     * 添加子查询
//     *
//     * @param selectSql 子查询SQL
//     * @param alias     别名
//     * @return children
//     */
//    Children selectSub(String selectSql, String alias);
//
//    /**
//     * 不默认查询全部字段
//     *
//     * @return children
//     */
//    Children notDefaultSelectAll();
//
//    /**
//     * 添加Distinct
//     *
//     * @return children
//     */
//    Children distinct();
//
//    /**
//     * HAVING 条件
//     *
//     * @param havingSql HAVING SQL
//     * @param params    参数
//     * @return children
//     */
//    Children having(String havingSql, Object... params);
//
//    /**
//     * HAVING 条件
//     *
//     * @param condition 执行条件
//     * @param havingSql HAVING SQL
//     * @param params    参数
//     * @return children
//     */
//    Children having(boolean condition, String havingSql, Object... params);
//
//    /**
//     * 转换查询Wrapper
//     *
//     * @param alias        别名
//     * @param queryWrapper 查询Wrapper
//     * @return children
//     */
//    Children changeQueryWrapper(String alias, Object queryWrapper);
}
