package com.tzld.piaoquan.growth.common.service;

import com.alibaba.fastjson.JSONObject;
import com.tzld.piaoquan.growth.common.common.base.CommonResponse;
import com.tzld.piaoquan.growth.common.model.bo.GroupSendWeComUserParam;
import com.tzld.piaoquan.growth.common.model.po.Staff;
import com.tzld.piaoquan.growth.common.model.po.UserWithTag;
import com.tzld.piaoquan.growth.common.model.po.WeComUser;
import com.tzld.piaoquan.growth.common.model.vo.UserTagParam;
import com.tzld.piaoquan.growth.common.model.vo.WeComUserVo;
import com.tzld.piaoquan.growth.common.utils.page.Page;

import java.util.List;


public interface WeComUserService {


    void addStaffWithUser(String externalUserId, String carrierId, Long corpId);

    void insertStaffWithUser(String externalUserId, Staff staff, Long corpId);

    void delStaffWithUser(String externalUserId, String carrierId, Long corpId, Long deleteTime);

    void delStaffWithUser(Long userId, Long staffId, Long deleteTime);

    List<WeComUserVo> getWeComUserByNameAvatar(String name, String avatar);

    JSONObject getUserDetail(String externalUserId, Long corpId);

    Page<WeComUserVo> getGroupSendWeComUser(GroupSendWeComUserParam param);

    List<Long> getFilterTagUserId();

    List<Long> getFilterTagId();

    List<Staff> getStaffByUserId(Long userId);

    CommonResponse<Void> addUserTag(UserTagParam userTagParam);

    boolean addUserWithTag(UserWithTag userWithTag);

    boolean delAllUserTag(Long userId);

    void updateUserWithTag(Long userId, List<String> tagIdList);
}
