package com.fs.his.service;

import com.fs.his.domain.FsDoctor;
import com.fs.his.param.FsDoctorListUParam;
import com.fs.his.param.FsDoctorParam;
import com.fs.his.param.FsUpdateFollowParam;
import com.fs.his.vo.*;

import java.util.List;

/**
 * 医生管理Service接口
 *
 * @author fs
 * @date 2023-06-05
 */
public interface IFsDoctorService
{
    /**
     * 查询医生管理
     *
     * @param doctorId 医生管理主键
     * @return 医生管理
     */
    public FsDoctor selectFsDoctorByDoctorId(Long doctorId);

    /**
     * 查询医生管理列表
     *
     * @param fsDoctor 医生管理
     * @return 医生管理集合
     */
    public List<FsDoctor> selectFsDoctorList(FsDoctor fsDoctor);

    /**
     * 新增医生管理
     *
     * @param fsDoctor 医生管理
     * @return 结果
     */
    public int insertFsDoctor(FsDoctor fsDoctor);

    /**
     * 修改医生管理
     *
     * @param fsDoctor 医生管理
     * @return 结果
     */
    public int updateFsDoctor(FsDoctor fsDoctor);

    /**
     * 批量删除医生管理
     *
     * @param doctorIds 需要删除的医生管理主键集合
     * @return 结果
     */
    public int deleteFsDoctorByDoctorIds(Long[] doctorIds);

    /**
     * 删除医生管理信息
     *
     * @param doctorId 医生管理主键
     * @return 结果
     */
    public int deleteFsDoctorByDoctorId(Long doctorId);

    List<FsDoctorListVO> selectFsDoctorListVO(FsDoctorParam fsDoctor);

    List<UserVo> selectUserVOList(String name);

    FsDoctorVO selectFsDoctorVOByDoctorId(Long doctorId);

    List<UserVo> selectUserDocVoList(String name);

    List<FsDoctorListUVO> selectFsDoctorListUVO(FsDoctorListUParam param);


    int updateEditFsDoctor(FsDoctor fsDoctor);

    FsDoctor selectFsDoctorByAccount(String account);

    FsDoctor selectFsDoctorByUserId(long userId);

    int updateFsDoctorPassWord(FsDoctor fsDoctor);

    byte[] getWxaCodeUnLimit();


    String getDoctorInquiryImg(Long doctorId);

    FsDoctor selectFsDoctorByDoctorIdForUpdate(Long doctorId);

    void addFsDoctorOrderNumberByDoctorId(Long doctorId);

    Long selectFsDoctorDoctorByPackage();

    Long selectFollowDoctorDoctorByPackage();

    List<OptionsVO> selectfollowDoctorList();

    int editFollowByFsDoctor(FsUpdateFollowParam fsDoctor);

    List<OptionsVO> selectAllfollowDoctorList();

    List<UserVo> selectAllDocVoList();

    List<UserVo> selectUserDocVoListByCompany(Long companyId);
}
