package com.reyun.saas.mob.user.service;

import com.reyun.saas.common.restResult.RestResult;
import com.reyun.saas.mob.user.domain.User;

/**
 * @author:
 * @Date: 2021/10/09/17:40
 * @Description:
 */
public interface SubUserService {

    //=============  用户权限start    ===================
    /**
     * 创建子用户
     * @param user 当前登录用户id
     * @param user 子用户
     * @return
     */
    RestResult createSubUser(Long loginUserId, User user);

    /**
     * 修改该子用户信息
     * @param loginUserId 当前登录用户id
     * @param user 目标用户
     * @return
     */
    RestResult updateSubUser(Long loginUserId, User user);

    /**
     * 查询子账号信息
     * @param loginUserId 当前登陆账号id
     * @param userId 目标用户id
     * @return
     */
    RestResult findSubUser(Long loginUserId, Long userId);

    /**
     * 用户列表
     * @param loginUserId 当前登录用户的id
     * @param status 状态
     * @param roleCategory 角色
     * @param desc 排序方式  默认按照创建时间倒序
     * @param search 搜索条件
     * @return
     */
    RestResult infos(Long loginUserId, String status,String roleCategory,String desc,String search);

    /**
     * 更新用户启用/禁用状态
     * @param loginUserId 当前登录的用户
     * @param userId 目标用户id
     * @param status 状态 启用:true  禁用:false
     * @return
     */
    RestResult updateUsingStatus(Long loginUserId, Long userId, Boolean status);


    /**
     * 重新发送激活邮件
     * @param loginUserId 当前登录的用户id
     * @param userId 目标用户id
     * @return
     */
    RestResult resendMail(Long loginUserId, Long userId);

    /**
     * 删除未激活子账号
     * @param loginUserId 当前登录用户id
     * @param userId 目标用户id
     * @return
     */
    RestResult deleteSubUser(Long loginUserId, Long userId);


    /**
     * 添加权限
     * @param loginUserId 当前登录用户
     * @param user 目标用户
     * @return
     */
    RestResult addAuth(Long loginUserId,  User user);


    /**
     * 查询子用户的权限
     * @param loginUserId 当前登录用户
     * @param userId 目标用户
     * @return
     */
    RestResult findAuth(Long loginUserId, Long userId);


//=============  用户权限end    ===================



}
