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

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

/**
 * 模型评估任务 —— 人工评估 Mapper
 *
 * @author 华大大模型
 */
@Mapper
public interface ModelAssessTaskManualMapper extends BaseMapperX<ModelAssessTaskManualDO> {

    default PageResult<ModelAssessTaskManualDO> selectPage(ModelAssessTaskManualPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<ModelAssessTaskManualDO>()
                .likeIfPresent(ModelAssessTaskManualDO::getTaskName, reqVO.getTaskName())
                .eq(ModelAssessTaskManualDO::getDeleted, false)
                .orderByDesc(ModelAssessTaskManualDO::getId));
    }
    @Update("update llm_model_assess_task_manual set status = #{status}, progress = #{formattedRatio} where id = #{modelAnswerId}")
    void updateStatus(@Param("modelAnswerId") Long modelAnswerId,@Param("formattedRatio") Integer formattedRatio,@Param("status") Integer status);

    @Select("select backup_id from llm_model_assess_task_manual where id = #{id}")
    Long selectTrueById(Long id);
}