package cn.iocoder.yudao.module.llm.dal.mysql.prompttemplates;

import java.util.*;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplates.PromptTemplatesDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo.*;

/**
 * Prompt 模板表，用于记录每个模板的信息 Mapper
 *
 * @author 华大大模型
 */
@Mapper
public interface PromptTemplatesMapper extends BaseMapperX<PromptTemplatesDO> {

    default PageResult<PromptTemplatesDO> selectPage(PromptTemplatesPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<PromptTemplatesDO>()
                .likeIfPresent(PromptTemplatesDO::getName, reqVO.getName())
                .eqIfPresent(PromptTemplatesDO::getTemplateCategory, reqVO.getTemplateCategory())
                .eqIfPresent(PromptTemplatesDO::getTemplateFramework, reqVO.getTemplateFramework())
                .eqIfPresent(PromptTemplatesDO::getTemplateText, reqVO.getTemplateText())
                .eqIfPresent(PromptTemplatesDO::getVariableIdentifier, reqVO.getVariableIdentifier())
                .eqIfPresent(PromptTemplatesDO::getTemplateType, reqVO.getTemplateType())
                .betweenIfPresent(PromptTemplatesDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(PromptTemplatesDO::getId));
    }

}
