package cn.quantgroup.xyqb.service.register;

import cn.quantgroup.xyqb.entity.Address;
import cn.quantgroup.xyqb.entity.Contact;
import cn.quantgroup.xyqb.entity.User;

import java.util.List;

/**
 * @author liqing
 * @date 2017/12/4 0004
 */
public interface IUserRegisterService {

    User register(Long registerFrom, String phoneNo);

    User register(Long registerFrom, String phoneNo, Integer tenantId);
    /**
     * 替换AppController.register
     * /app/login，/app/login_super
     *
     * @param registerFrom
     * @param phoneNo
     * @param idNo
     * @param name
     * @param channelId
     * @param btRegisterChannelId
     * @return
     */
    User register(Long registerFrom, String phoneNo,  Long channelId, Long btRegisterChannelId);

    User register(Long registerFrom, String phoneNo, String idNo, String name, Long channelId, Long btRegisterChannelId);

    User register(Long registerFrom, String phoneNo, String idNo, String name, Long channelId, Long btRegisterChannelId, Integer tenantId);


    /**
     * 替换UserController.register里的userService.register
     * /user/register
     *
     * @param phoneNo
     * @param password
     * @param registerFrom
     * @param ip
     * @param channelId
     * @param btRegisterChannelId
     * @param dimension
     * @return
     */
    boolean register(String phoneNo, String password, Long registerFrom, String ip, Long channelId, Long btRegisterChannelId, String dimension);

    /**
     * 替换UserController.loginFast里的registerFastWhenLogin
     * /user/login/fast
     *
     * @param phoneNo
     * @param channelId
     * @param registerFrom
     * @param appChannel
     * @param btRegisterChannelId
     * @param dimension
     * @return
     */
    User register(String phoneNo, Long channelId, Long registerFrom, String appChannel, Long btRegisterChannelId, String dimension);

    User register(String phoneNo, Long channelId, Long registerFrom, String appChannel, Long btRegisterChannelId, String dimension, Integer tenantId);

    /**
     * 替换InnerController.saveMulti里的userService.registerAndReturn
     * /innserapi/user/save_multi
     *
     * @version 0.2
     * @author jinsong.zhu 2018年05月16日14:22:13
     * 处理对address和contact的非必要兼容
     */
    User register(Long registeredFrom, Long channelId, String phoneNo, String name, String idNo, Address addressObj, String contacts, List<Contact> contactList, Long btRegisterChannelId);


}
