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

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

/**
 * 损失记录表，用于记录每次训练的损失值 Mapper
 *
 * @author 华大大模型
 */
@Mapper
public interface FineTuningLossMapper extends BaseMapperX<FineTuningLossDO> {

    default PageResult<FineTuningLossDO> selectPage(FineTuningLossPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<FineTuningLossDO>()
                .betweenIfPresent(FineTuningLossDO::getCreateTime, reqVO.getCreateTime())
                .eqIfPresent(FineTuningLossDO::getTaskId, reqVO.getTaskId())
                .eqIfPresent(FineTuningLossDO::getEpoch, reqVO.getEpoch())
                .eqIfPresent(FineTuningLossDO::getLossValue, reqVO.getLossValue())
                .orderByDesc(FineTuningLossDO::getId));
    }

}