package com.xinelu.applet.service.appletlogin;

import com.xinelu.applet.dto.appletlogin.AppointmentInfoDTO;
import com.xinelu.applet.dto.appletlogin.StationItemInfoDTO;
import com.xinelu.common.core.domain.AjaxResult;

/**
 * @Description 微信小程序登录注册业务层
 * @Author 纪寒
 * @Date 2022-09-02 10:55:14
 * @Version 1.0
 */
public interface AppletLoginService {

    /**
     * 根据登录凭证获取用户的登录信息
     *
     * @param loginCode 登录凭证
     * @param phoneCode 获取手机号登录凭证
     * @return 微信用户登录信息
     */
    AjaxResult appletLogin(String loginCode, String phoneCode);

    /**
     * 根据用户的patientId查询用户是否注册
     *
     * @param patientId 用户id主键
     * @return 个人信息
     */
    AjaxResult getPatientInfoByPatientId(Long patientId);

    /**
     * 根据护理站id和护理站项目id查询对应的护理项目信息
     *
     * @param itemInfoDTO 输入参数
     * @return 护理项目信息集合
     */
    AjaxResult getStationItemAndConsumableInfo(StationItemInfoDTO itemInfoDTO);

    /**
     * 预约提交方法
     *
     * @param dto 输入参数
     * @return 预约结果
     */
    AjaxResult nurseAppointment(AppointmentInfoDTO dto);

    /**
     * 根据openid判断当前用户信息是否存在，微信小程序登录页使用
     *
     * @param openId 微信用户的openid
     * @return 护理人列表集合
     */
    AjaxResult existPatientInfo(String openId);

    /**
     * 查询省级区域信息信息
     *
     * @return 省级区域信息集合
     */
    AjaxResult getProvinceAreaInfo();

    /**
     * 根据父区域编码查询其下属区域信息
     *
     * @param areaCode 父级区域编码
     * @return 下属区域信息集合
     */
    AjaxResult getSubordinateAreaInfo(String areaCode);
}
