package com.red.circle.other.app.inner.service.user.region;

import com.red.circle.other.inner.model.cmd.user.SysRegionCmd;
import com.red.circle.other.inner.model.cmd.user.SysRegionConfigQryCmd;
import com.red.circle.other.inner.model.dto.user.reigon.RegionConfigDTO;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @author zongpubin on 2023/8/14
 */
public interface RegionConfigClientService {

  RegionConfigDTO getRegionById(String id);

  RegionConfigDTO getRegionByUserId(Long userId);

  Map<String, String> getMetadata(String regionId);

  Map<String, String> mapRegionNameBySysOrigin(String sysOrigin);

  Map<String, String> mapRegionNameByRegionIds(Set<String> regionIds);

  String getRegionName(String regionId);

  void add(SysRegionCmd config);

  void update(SysRegionCmd config);

  void resetWithdrawal(Long regionId);

  List<RegionConfigDTO> listByCondition(SysRegionConfigQryCmd query);

  Map<Long, String> mapRegionIdByUserIds(Set<Long> userIdSet);
}
