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

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.prompttemplatesbackup.PromptTemplatesBackupDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesbackup.vo.*;
import org.apache.ibatis.annotations.Param;

/**
 * Prompt模板备份 Mapper
 *
 * @author 华大大模型
 */
@Mapper
public interface PromptTemplatesBackupMapper extends BaseMapperX<PromptTemplatesBackupDO> {

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

    /**
     * 根据 标签id 获取 模版备份
     *
     * @param labelId 标签id
     * @return 模版备份
     */
    List<PromptTemplatesBackupDO> getPromptTemplateBackByLabelId (@Param("labelId") Long labelId);

    /**
     * 根据 应用id 获取 模版备份
     *
     * @param applicationId 应用id
     * @return 模版备份
     */
    List<PromptTemplatesBackupDO> getPromptTemplateBackByAppId (@Param("applicationId") Long applicationId);
}
