package com.red.circle.console.app.service.app.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.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;

/**
 * <p>
 * 徽章配置 服务类.
 * </p>
 *
 * @author houyong
 * @since 2021-03-19
 */
public interface SysBadgeConfigService {


  List<SelectBadgeDTO> listBadgeByType(SysBadgeConfigTypeEnum type);

  PageResult<SysBadgeConfigInfoDTO> getBadgeConfig(SysBadgeConfigQryCmd query);

  void updateBadgeConfig(BadgeConfigDTO badgeConfigDTO);

  void addBadgeConfig(BadgeConfigDTO badgeConfigDTO);

  void deleteBadge(Long id);

  PageResult<GiveBadgeConfigDTO> getGiveBadgePage(GiveBadgeConfigQryCmd query);

  void giveBadge(Long badgeId, Long userId);

  void retrieveBadge(Long badgeId, Long userId);

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

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

}
