package com.xinelu.familydoctor.applet.service;

import com.xinelu.common.entity.AppletPhoneVO;
import com.xinelu.familydoctor.applet.pojo.body.PatientInfoBody;
import com.xinelu.familydoctor.applet.pojo.entity.PatientInfo;
import java.util.HashMap;
import java.util.List;

/**
 * 小程序注册Service接口
 *
 * @author xinelu
 * @date 2023-09-25
 */
public interface IResidentPatientInfoService {

    /**
     * @return com.xinelu.familydoctor.applet.pojo.entity.PatientInfo
     * @Author mengkuiliang
     * @Description 获取注册详细信息
     * @Date 2023-09-21 021 9:44
     * @Param [registerCode]
     **/
    public PatientInfo selectPatientInfoByCode(String patientCode);

    /**
     * @return int
     * @Author mengkuiliang
     * @Description 修改
     * @Date 2023-09-21 021 10:54
     * @Param [patientInfo]
     **/
    public int updatePatientInfo(PatientInfo body);

    /**
     * @return void
     * @Author mengkuiliang
     * @Description 获取OpenId
     * @Date 2023-09-21 021 9:18
     * @Param []
     **/
    String getOpenId(String code) throws Exception;

    /**
     * @Author mengkuiliang
     * @Description 获取微信手机号
     * @Date 2023-09-26 026 11:42
     * @Param [code]
     * @return java.lang.String
     **/
    AppletPhoneVO getPhone(String code) throws Exception;

    /**
     * @return java.lang.String
     * @Author mengkuiliang
     * @Description 身份证号是否已注册
     * @Date 2023-09-21 021 10:00
     * @Param [openId]
     **/
    PatientInfo isRegisterByCardNo(String cardNo);

    /**
     * @return void
     * @Author mengkuiliang
     * @Description 注册和完善信息
     * @Date 2023-09-21 021 10:13
     * @Param [body]
     **/
    void register(PatientInfoBody body) throws Exception;

    /**
     * @return void
     * @Author mengkuiliang
     * @Description 解绑
     * @Date 2023-09-21 021 10:50
     * @Param [cardNo]
     **/
    void unbinding(String patientCode);

    /**
     * @Author mengkuiliang
     * @Description 获取已注册列表
     * @Date 2023-09-21 021 14:51
     * @Param [openid]
     * @return java.lang.String
     **/
    List<PatientInfo> getList(String openid, String cityCode);

    /**
     * @Author mengkuiliang
     * @Description 切换账号
     * @Date 2023-09-21 021 15:17
     * @Param [registerCode]
     * @return void
     **/
    PatientInfo switchResident(String openid, String patientCode);

    /**
     * @Author mengkuiliang
     * @Description 获取当前注册居民
     * @Date 2023-09-25 025 15:28
     * @Param [openid]
     * @return java.lang.String
     **/
    PatientInfo getCurrentResident(String openid, String cityCode);

    /**
     * @Author mengkuiliang
     * @Description 获取注册信息-根据身份证号
     * @Date 2023-09-27 027 15:13
     * @Param [cardNo]
     * @return void
     **/
    PatientInfo getByCardNo(String cardNo);

    /**
     * @Author mengkuiliang
     * @Description 是否已注册
     * @Date 2023-10-11 011 10:45
     * @Param [code]
     * @return java.lang.Object
     **/
    //PatientInfo isRegistered(String code);
    HashMap<String,String> login(String logincode,String phoneCode) throws Exception;
}
