package com.red.circle.other.app.inner.service.sys;

import com.red.circle.framework.dto.PageResult;
import com.red.circle.other.inner.enums.sys.SysBadgeConfigTypeEnum;
import com.red.circle.other.inner.model.cmd.sys.GiveBadgeConfigQryCmd;
import com.red.circle.other.inner.model.cmd.sys.SysBadgeConfigQryCmd;
import com.red.circle.other.inner.model.cmd.sys.SysBadgePictureConfigParamCmd;
import com.red.circle.other.inner.model.dto.material.BadgeConfigDTO;
import com.red.circle.other.inner.model.dto.material.BadgePictureConfigDTO;
import com.red.circle.other.inner.model.dto.sys.GiveBadgeConfigDTO;
import com.red.circle.other.inner.model.dto.sys.SelectBadgeDTO;
import com.red.circle.other.inner.model.dto.sys.SysBadgeConfigInfoDTO;
import java.util.List;

/**
 * 徽章配置.
 *
 * @author pengliang on 2023/8/11
 */
public interface BadgeConfigClientService {

  List<SelectBadgeDTO> listBadgeByType(SysBadgeConfigTypeEnum type);

  PageResult<GiveBadgeConfigDTO> getGiveBadgePage(GiveBadgeConfigQryCmd query);

  List<BadgePictureConfigDTO> listBadgePictureBySysOrigin(String sysOrigin,
      SysBadgeConfigTypeEnum type);

  void deleteBadge(Long id);

  void addBadgeConfig(BadgeConfigDTO badgeConfigDTO);

  void updateBadgeConfig(BadgeConfigDTO badgeConfigDTO);

  PageResult<SysBadgeConfigInfoDTO> getBadgeConfig(SysBadgeConfigQryCmd query);

  void addOrUpdateBadgePicture(SysBadgePictureConfigParamCmd param);

  List<Long> listAdminBadgeIds();

  Long getAdminBadgeId(String roles);

  List<BadgePictureConfigDTO> listBadgePictureByBadgeIds(List<Long> ids);
}
