package com.xinelu.manage.mapper.consultationInfo;

import com.xinelu.manage.dto.consultationInfo.ConsultationInfoDTO;
import com.xinelu.manage.domain.consultationInfo.ConsultationInfo;
import com.xinelu.manage.vo.consultationInfo.ConsultationInfoVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * 在线问诊-问诊信息（图文和视频问诊基本信息）Mapper接口
 *
 * @author xinelu
 * @date 2023-09-25
 */
public interface ConsultationInfoMapper {
    /**
     * 查询在线问诊-问诊信息（图文和视频问诊基本信息）
     *
     * @param id 在线问诊-问诊信息（图文和视频问诊基本信息）主键
     * @return 在线问诊-问诊信息（图文和视频问诊基本信息）
     */
    public ConsultationInfoDTO selectConsultationInfoById(Long id);

    /**
     * 获取问诊信息绑定文件路径
     *
     * @param id 在线问诊-问诊信息（图文和视频问诊基本信息）主键
     * @return 文件路径
     */
    public List<String> getConsultationFiles(Long id);

    /**
     * 查询在线问诊-问诊信息（图文和视频问诊基本信息）列表
     *
     * @param consultationInfoDTO 在线问诊-问诊信息（图文和视频问诊基本信息）
     * @return 在线问诊-问诊信息（图文和视频问诊基本信息）集合
     */
    public List<ConsultationInfoVO> selectConsultationInfoList(ConsultationInfoDTO consultationInfoDTO);

    /**
     * 新增在线问诊-问诊信息（图文和视频问诊基本信息）
     *
     * @param consultationInfo 在线问诊-问诊信息（图文和视频问诊基本信息）
     * @return 结果
     */
    public int insertConsultationInfo(ConsultationInfo consultationInfo);

    /**
     * 新增问诊信息附件表
     *
     * @param consultationId ,fileUrls
     * @return 结果
     */
    public int insertConsultationFile(@Param("consultationId") Long consultationId, @Param("fileUrls") List<String> fileUrls);

    /**
     * 修改在线问诊-问诊信息（图文和视频问诊基本信息）
     *
     * @param consultationInfo 在线问诊-问诊信息（图文和视频问诊基本信息）
     * @return 结果
     */
    public int updateConsultationInfo(ConsultationInfo consultationInfo);

    /**
     * 删除在线问诊-问诊信息（图文和视频问诊基本信息）
     *
     * @param id 在线问诊-问诊信息（图文和视频问诊基本信息）主键
     * @return 结果
     */
    public int deleteConsultationInfoById(Long id);

    /**
     * 批量删除在线问诊-问诊信息（图文和视频问诊基本信息）
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteConsultationInfoByIds(Long[] ids);
}
