package com.fs.course.service;

import com.fs.course.domain.FsCourseSop;
import com.fs.course.domain.FsCourseSopLogs;
import com.fs.course.param.FsCourseSopLogsAiBParam;
import com.fs.course.param.FsCourseSopParam;
import com.fs.course.vo.FsCourseSopAiListVO;
import com.fs.course.vo.FsCourseSopListVO;
import com.fs.course.vo.FsCourseSopLogsListVO;
import com.fs.course.vo.FsCourseSopLogsVO;

import java.util.List;

/**
 * 看课sopService接口
 *
 * @author fs
 * @date 2024-09-04
 */
public interface IFsCourseSopService
{
    /**
     * 查询看课sop
     *
     * @param id 看课sop主键
     * @return 看课sop
     */
    public FsCourseSop selectFsCourseSopById(Long id);

    /**
     * 查询看课sop列表
     *
     * @param fsSop 看课sop
     * @return 看课sop集合
     */
    public List<FsCourseSop> selectFsCourseSopList(FsCourseSop fsSop);
    public List<FsCourseSopListVO> selectFsCourseSopVOList(FsCourseSop fsSop);

    /**
     * 新增看课sop
     *
     * @param fsSop 看课sop
     * @return 结果
     */
    public int insertFsCourseSop(FsCourseSop fsSop);

    /**
     * 修改看课sop
     *
     * @param fsSop 看课sop
     * @return 结果
     */
    public int updateFsCourseSop(FsCourseSop fsSop);

    /**
     * 批量删除看课sop
     *
     * @param ids 需要删除的看课sop主键集合
     * @return 结果
     */
    public int deleteFsCourseSopByIds(Long[] ids);

    /**
     * 删除看课sop信息
     *
     * @param id 看课sop主键
     * @return 结果
     */
    public int deleteFsCourseSopById(Long id);


    /**
    * AI-chat课程 获取员工SOP规则列表
    */

    public List<FsCourseSopAiListVO> selectSopListVO(FsCourseSopParam param);

    /**
     * AI-chat课程 获取员工sop发送列表历史
     */
    List<FsCourseSopLogsListVO> selectSopSendCustomerLogsListVO(FsCourseSopParam param);

    /**
     * AI-chat课程 获取员工sop发送历史 详情
     */
    FsCourseSopLogsVO getFsCourseSopLogsDetailVO(FsCourseSopLogsAiBParam param);

    /**
     * 更新AI发送状态
     */
    int updateFsCourseSopLogsSendType(FsCourseSopLogs fsSopLogs);
}
