package cn.com.ty.lift.system.user.service;

import cn.com.ty.lift.system.user.dao.entity.model.UserRequest;
import cn.com.xwy.boot.web.dto.RestResponse;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

public interface ILoginService {

    /**
     * @param userRequest 用户请求参数
     * @return
     * @description 用户注册
     * @date 2019/11/27 10:03 AM
     */
    RestResponse register(HttpServletRequest request, UserRequest userRequest);

    /**
     * @param request
     * @param userRequest 用户请求参数，包括用户手机号，用户密码。
     * @return
     * @description
     * @date 2019/11/27 10:03 AM
     */
    RestResponse login(HttpServletRequest request, UserRequest userRequest);

    /**
     * @param userRequest 请求对象
     * @return
     * @description 重置密码
     * @date 2019-12-10
     */
    RestResponse resetPassword(UserRequest userRequest, HttpSession session);

    /**
     * @param
     * @return
     * @description 切换团队
     * @date 2019-12-18 16:15
     */
    RestResponse changeTeam(HttpServletRequest request, UserRequest userRequest);

    /**
     * @param
     * @return
     * @description 微信登录
     * @date 2019-12-30 10:52
     */
    RestResponse wxLogin(HttpServletRequest request, UserRequest userRequest);

    /**
     * @param mobile       手机号
     * @param inputSmsCode 验证码
     * @return
     * @description 校验手机短信验证码
     * @date 2020-01-04 10:38
     */
    RestResponse verifySmsCode(String mobile, String inputSmsCode);

    /**
     * @param mobile 用户手机号
     * @param token  token
     * @description 在redis中置空用户信息
     * @date 2020/4/22 6:46 下午
     */
    void blankingUserInfoIntoRedis(String mobile, String token, HttpSession session);

    /**
     * @param request 请求数据
     * @return userRequest 请求数据
     * @description 小程序登录
     * @date 2020/4/27 11:01 上午
     */
    RestResponse appletLogin(HttpServletRequest request, UserRequest userRequest);

    /**
     * @param request 绑定手机号
     * @return 返回信息
     * @description 绑定手机号
     * @date 2020/4/27 2:39 下午
     */
    RestResponse bindMobile(HttpServletRequest request, UserRequest userRequest);

    /**
     * @param userRequest mobile 用户手机号
     * @return
     * @description app 卫星登录绑定用户手机号
     * @date 2020/5/7 10:43 上午
     */
    RestResponse appBindMobile(UserRequest userRequest);
}
