package com.fs.doctor.service;

import java.math.BigDecimal;
import java.util.List;
import com.fs.doctor.domain.Doctor;
import com.fs.doctor.vo.*;

/**
 * 讲者主Service接口
 * 
 * @author fs
 * @date 2025-12-30
 */
public interface IDoctorService 
{
    /**
     * 查询讲者主
     * 
     * @param id 讲者主主键
     * @return 讲者主
     */
    public Doctor selectDoctorById(Long id);

    /**
     * 查询讲者主列表
     * 
     * @param doctor 讲者主
     * @return 讲者主集合
     */
    public List<Doctor> selectDoctorList(Doctor doctor);

    /**
     * 新增讲者主
     * 
     * @param doctor 讲者主
     * @return 结果
     */
    public int insertDoctor(Doctor doctor);

    /**
     * 修改讲者主
     * 
     * @param doctor 讲者主
     * @return 结果
     */
    public int updateDoctor(Doctor doctor);

    /**
     * 批量删除讲者主
     * 
     * @param ids 需要删除的讲者主主键集合
     * @return 结果
     */
    public int deleteDoctorByIds(Long[] ids);

    /**
     * 删除讲者主信息
     * 
     * @param id 讲者主主键
     * @return 结果
     */
    public int deleteDoctorById(Long id);

    List<DoctorOptionRespVO> getDoctorOptionVOList(DoctorOptionReqVO doctorOptionReqVO);

    int add(DoctorVO doctorVO);

    DoctorAuditVO selectDoctorAuditInfo(Long id);

    void doAudit(DoctorDoAuditReqVO doctorDoAuditReqVO);
    void appDoAudit(DoctorDoAuditReqVO doctorDoAuditReqVO);

    int resetPwd(DoctorResetPwdReqVO req);

    Doctor selectDoctorByDoctorId(String doctorId);

    void addPoints(Long doctorId, BigDecimal points);

    void resetPassword(Doctor doctor);

    Doctor selectDoctorByPhone(String phone);

    int addByCompany(DoctorVO doctorVO);
}
