package com.fs.sop.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fs.common.annotation.DataSource;
import com.fs.common.enums.DataSourceType;
import com.fs.sop.domain.QwSopTempContent;
import com.fs.sop.vo.QwSopTempContentVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * sop任务模板内容Mapper接口
 *
 * @author fs
 * @date 2025-02-06
 */
@DataSource(DataSourceType.SOP)
public interface QwSopTempContentMapper extends BaseMapper<QwSopTempContent>{
    /**
     * 查询sop任务模板内容
     *
     * @param id sop任务模板内容主键
     * @return sop任务模板内容
     */
    QwSopTempContent selectQwSopTempContentById(String id);

    /**
     * 查询sop任务模板内容列表
     *
     * @param qwSopTempContent sop任务模板内容
     * @return sop任务模板内容集合
     */
    List<QwSopTempContent> selectQwSopTempContentList(QwSopTempContent qwSopTempContent);

    /**
     * 新增sop任务模板内容
     *
     * @param qwSopTempContent sop任务模板内容
     * @return 结果
     */
    int insertQwSopTempContent(QwSopTempContent qwSopTempContent);

    /**
     * 修改sop任务模板内容
     *
     * @param qwSopTempContent sop任务模板内容
     * @return 结果
     */
    int updateQwSopTempContent(QwSopTempContent qwSopTempContent);

    /**
     * 删除sop任务模板内容
     *
     * @param id sop任务模板内容主键
     * @return 结果
     */
    int deleteQwSopTempContentById(String id);

    /**
     * 批量删除sop任务模板内容
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteQwSopTempContentByIds(String[] ids);

    void deleteByTempId(@Param("id") String id);

    void insertBatch(@Param("list") List<QwSopTempContent> list);
    void deleteByRulesId(@Param("id") String id);
    List<QwSopTempContent> listByRulesIds(@Param("ids") List<Long> ids);
    void deleteByRulesIdList(@Param("ids") List<Long> ids);

    List<QwSopTempContent> listVoice(@Param("tempId") String tempId);

    List<QwSopTempContent> listByTempAndDay(@Param("tempId") String tempId, @Param("dayId") Long dayId);

    void updateDay(@Param("id") Long id, @Param("dayId") Long dayId);

    @Select("SELECT\n" +
            "\tc.*,\n" +
            "\tr.video_id \n" +
            "FROM\n" +
            "\tqw_sop_temp_content c\n" +
            "\tLEFT JOIN qw_sop_temp t ON t.id = c.temp_id\n" +
            "\tLEFT JOIN qw_sop_temp_rules r ON r.id = c.rules_id \n" +
            "WHERE\n" +
            "\tt.company_id = 170 \n" +
            "\tAND c.content_type = 3")
    List<QwSopTempContentVO> updateSiFenTemp();


    List<QwSopTempContent> selectQwSopTempContentByTempIdAndRules(@Param("tempId") String tempId);

    List<QwSopTempContent> selectQwSopTempContentByTempId(@Param("tempId") String tempId);
}
