package com.xinelu.manage.mapper.signpatientmanageroute;

import com.xinelu.manage.domain.signpatientmanageroute.SignPatientManageRoute;
import com.xinelu.manage.dto.manualfollowup.ManualFollowUpDTO;
import com.xinelu.manage.vo.manualfollowup.ManualFollowPatientVO;
import com.xinelu.manage.vo.manualfollowup.ManualFollowUpVO;
import com.xinelu.manage.vo.signpatientmanageroute.PhonePush;
import com.xinelu.manage.vo.signpatientmanageroute.SignPatientManageRouteVO;

import java.util.List;


/**
 * 签约患者管理任务路径Mapper接口
 *
 * @author haown
 * @date 2024-03-18
 */
public interface SignPatientManageRouteMapper {
    /**
     * 查询签约患者管理任务路径
     *
     * @param id 签约患者管理任务路径主键
     * @return 签约患者管理任务路径
     */
    public SignPatientManageRoute selectSignPatientManageRouteById(Long id);

    /**
     * 查询签约患者管理任务路径
     *
     * @param id 签约患者管理任务路径主键
     * @return 签约患者管理任务路径
     */
     SignPatientManageRouteVO selectSignPatientManageRoute(Long id);

    /**
     * 查询签约患者管理任务路径列表
     *
     * @param signPatientManageRoute 签约患者管理任务路径
     * @return 签约患者管理任务路径集合
     */
    List<SignPatientManageRoute> selectSignPatientManageRouteList(SignPatientManageRoute signPatientManageRoute);

    /**
     * 新增签约患者管理任务路径
     *
     * @param signPatientManageRoute 签约患者管理任务路径
     * @return 结果
     */
    public int insertSignPatientManageRoute(SignPatientManageRoute signPatientManageRoute);

    /**
     * 修改签约患者管理任务路径
     *
     * @param signPatientManageRoute 签约患者管理任务路径
     * @return 结果
     */
    public int updateSignPatientManageRoute(SignPatientManageRoute signPatientManageRoute);

    /**
     * 删除签约患者管理任务路径
     *
     * @param id 签约患者管理任务路径主键
     * @return 结果
     */
    public int deleteSignPatientManageRouteById(Long id);

    /**
     * 批量删除签约患者管理任务路径
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSignPatientManageRouteByIds(Long[] ids);

    /**
     * 查询人工随访代办列表
     * @param manualFollowUpDTO 人工随访查询DTO
     * @return ManualFollowUpVO 人工随访代办VO
     */
    List<ManualFollowUpVO> selectManualFollowUpList(ManualFollowUpDTO manualFollowUpDTO);

    /**
     * 查询人工随访患者基本信息
     * @param id 签约患者管理任务表id
     * @return ManualFollowPatientVO 人工随访基本信息VO
     */
    ManualFollowPatientVO selectFollowPatientInfo(Long id);

    /**
     * 话术类型代办处理详情
     */
    PhonePush selectSignPatientManageRouteNode(Long manageRouteNodeId);

    /**
     * 查询患者电话
     *
     * @param patientId
     * @return
     */
    String selectPatientPhone(Long patientId);
}
