package com.red.circle.other.infra.database.cache.service.user;

import com.red.circle.other.infra.database.cache.key.user.UserHashKey;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

/**
 * 用户管理缓存服务.
 *
 * @author lixiaofei on 2024/9/4
 */
public interface UserRegionCacheService {

  /**
   * 移除用户相关缓存.
   *
   * @param userId 用户id
   */
  void remove(Long userId);

  /**
   * 添加用户区域缓存.
   *
   * @param userRegions 用户id区域信息
   */
  void add(Map<Long, String> userRegions);

  /**
   * 获取一组用户区域.
   *
   * @param userIds 用户ids
   */
  Map<Long, String> getUserRegionsMap(Collection<Long> userIds);

  /**
   * 获取一个用户区域.
   *
   * @param userId 用户id
   */
  String getUserRegions(Long userId);

  /**
   * 移除所有用户资料下信息.
   *
   * @param userIds 用户id集合
   */
  void remove(Collection<Long> userIds);

  /**
   * 移除指定key.
   *
   * @param userId 用户id
   * @param keys   keys
   */
  void remove(Long userId, UserHashKey... keys);

}
