package com.schisandra.auth.domain.service;


import com.schisandra.auth.common.entity.Result;
import com.schisandra.auth.domain.bo.SchisandraAuthUserBO;
import com.schisandra.auth.infra.basic.entity.SchisandraAuthUser;
import me.zhyd.oauth.model.AuthUser;

/**
 * 用户领域service
 *
 * @author landaiqing
 * @since 2024-05-23 20:00:28
 */
public interface SchisandraAuthUserDomainService {


    /**
     * @param schisandraAuthUserBO
     * @return java.lang.Boolean
     * @description 用户注册
     * @author zlg
     * @date 2024/3/21 23:14
     */
    Boolean register(SchisandraAuthUserBO schisandraAuthUserBO);
    /**
     * @description: 用户登录
     * @param: [schisandraAuthUserBO]
     * @return: com.schisandra.auth.domain.bo.SchisandraAuthUserBO
     * @author: landaiqing
     * @date: 2024/5/26 17:28
     */
    SchisandraAuthUserBO login(SchisandraAuthUserBO schisandraAuthUserBO);

    /**
     * @param schisandraAuthUserBO
     * @return java.lang.Object
     * @description 更新用户信息
     * @author schisandra
     * @date 2024/3/21 23:14
     */
    Object update(SchisandraAuthUserBO schisandraAuthUserBO);

    /**
     * @description: 根据第三方登录信息添加用户信息
     * @param: [data, type]
     * @return: void
     * @author: landaiqing
     * @date: 2024/5/26 17:27
     */
    Result insertAuthUserByOauth(AuthUser data, String type);

    /**
     * @description: 通过id查询用户信息
     * @param: [schisandraAuthUserBO]
     * @return: com.schisandra.auth.domain.bo.SchisandraAuthUserBO
     * @author: landaiqing
     * @date: 2024/5/26 17:27
     */
    SchisandraAuthUserBO queryById(SchisandraAuthUserBO schisandraAuthUserBO);

    /**
     * @param schisandraAuthUserBO
     * @return java.lang.object
     * @description 添加用户信息
     * @author msz
     */
    Object insert(SchisandraAuthUserBO schisandraAuthUserBO);

    /**
     * @param id
     * @return java.lang.object
     * @description 删除用户(物理)
     * @author msz
     */
    Object deleteById(Long id);

    SchisandraAuthUser queryByPhone(String phone);
}

