package org.xyzh.study.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.xyzh.common.dto.study.TbLearningTaskTag;
import org.xyzh.common.vo.TagVO;

import java.util.List;

/**
 * @description 学习任务标签关联Mapper
 * @filename LearningTaskTagMapper.java
 * @author yslg
 * @copyright xyzh
 * @since 2025-10-31
 */
@Mapper
public interface LearningTaskTagMapper extends BaseMapper<TbLearningTaskTag> {

    /**
     * 根据任务ID查询标签VO列表（包含标签详细信息）
     */
    List<TagVO> selectByTaskId(@Param("taskId") String taskId);

    /**
     * 根据标签ID查询任务关联列表
     */
    List<TbLearningTaskTag> selectByTagId(@Param("tagId") String tagId);

    /**
     * 批量插入任务标签关联
     */
    int batchInsert(@Param("list") List<TbLearningTaskTag> list);

    /**
     * 根据任务ID删除所有标签关联
     */
    int deleteByTaskId(@Param("taskId") String taskId);

    /**
     * 删除指定任务的指定标签
     */
    int deleteByTaskIdAndTagId(@Param("taskId") String taskId, @Param("tagId") String tagId);
}

