package com.sonic.pigeon.service;

import com.netease.nim.server.sdk.im.v2.users.response.GetUserResponseV2;
import com.sonic.pigeon.domain.output.ImUserAccountOutput;
import com.sonic.pigeon.lib.enums.ImUserTypeEnum;
import com.sonic.pigeon.lib.input.CreateImUserInput;
import com.sonic.pigeon.lib.input.EditImUserInput;

/**
 * Im用户处理
 */
public interface ImUserService {

    /**
     * 创建用户
     * @param input
     */
    void createImUser(CreateImUserInput input);

    /**
     * 修改用户信息
     * @param input
     */
    void editImUser(EditImUserInput input);

    /**
     * 获取im用户信息
     * @param userId
     * @param imUserType
     * @return
     */
    GetUserResponseV2 getImUser(Long userId, ImUserTypeEnum imUserType);

    /**
     * 获取IM用户登录信息
     * @param userId
     * @return
     */
    ImUserAccountOutput getImUserAccount(Long userId);
}
