package com.seer.teach.admin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.seer.teach.admin.request.TeachGoalCheckAndScoreReq;
import com.seer.teach.admin.request.TeachGoalsBatchSaveReq;
import com.seer.teach.admin.request.TeachGoalsQueryReq;
import com.seer.teach.admin.request.TeachGoalsReq;
import com.seer.teach.admin.response.TeachGoalsResp;

/**
 * <p>
 * 教学目标管理服务接口
 * </p>
 *
 * @author Lingma
 * @since 2025-12-04
 */
public interface AdminTeachGoalsService {

    /**
     * 分页查询教学目标列表
     *
     * @param req 查询条件
     * @return 教学目标分页数据
     */
    IPage<TeachGoalsResp> pageTeachGoals(TeachGoalsQueryReq req);

    /**
     * 根据ID获取教学目标详情
     *
     * @param id 教学目标ID
     * @return 教学目标实体
     */
    TeachGoalsResp getTeachGoalById(Integer id);

    /**
     * 添加教学目标
     *
     * @param req 教学目标信息
     * @return 是否添加成功
     */
    boolean addTeachGoal(TeachGoalsReq req);

    /**
     * 更新教学目标信息
     *
     * @param id  教学目标ID
     * @param req 教学目标信息
     * @return 是否更新成功
     */
    boolean updateTeachGoal(Integer id, TeachGoalsReq req);

    /**
     * 删除教学目标
     *
     * @param id 教学目标ID
     * @return 是否删除成功
     */
    boolean deleteTeachGoal(Integer id);

    /**
     * 更新教学目标检查状态和评分
     *
     * @param id  教学目标ID
     * @param req 检查状态和评分信息
     * @return 是否更新成功
     */
    boolean updateTeachGoalCheckAndScore(Integer id, TeachGoalCheckAndScoreReq req);

    /**
     * 批量保存生成的教学目标
     *
     * @param req 批量保存请求参数
     * @return 是否保存成功
     */
    boolean batchSaveGeneratedTeachGoals(TeachGoalsBatchSaveReq req);

    /**
     * 更新教学目标排序
     *
     * @param id  教学目标ID
     * @param sort 排序信息
     * @return 是否更新成功
     */
    boolean updateTeachGoalSort(Integer id,Integer sort);
}