package com.red.circle.other.app.inner.convertor.material;

import com.red.circle.framework.core.convertor.ConvertorModel;
import com.red.circle.other.infra.database.rds.entity.emoji.EmojiConfig;
import com.red.circle.other.infra.database.rds.entity.emoji.EmojiGroup;
import com.red.circle.other.inner.model.cmd.sys.SysEmojiConfigParamCmd;
import com.red.circle.other.inner.model.cmd.sys.SysEmojiGroupParamCmd;
import com.red.circle.other.inner.model.dto.material.EmojiConfigDTO;
import com.red.circle.other.inner.model.dto.material.EmojiGroupDTO;
import java.util.List;
import java.util.Map;
import org.mapstruct.Mapper;

/**
 * @author pengliang on 2023/6/5
 */
@Mapper(componentModel = ConvertorModel.SPRING)
public interface EmojiInnerConvertor {

  List<EmojiConfigDTO> toListEmojiConfig(List<EmojiConfig> emojiConfig);

  Map<Long, List<EmojiConfigDTO>> toMapEmojiConfig(Map<Long, List<EmojiConfig>> emojiConfig);

  EmojiConfigDTO toEmojiConfigDTO(EmojiConfig configDTO);


  EmojiGroupDTO toEmojiGroupDTO(EmojiGroup emojiGroup);

  EmojiGroup toEmojiGroup(SysEmojiGroupParamCmd param);

  List<EmojiGroupDTO> toListEmojiGroupDTO(List<EmojiGroup> groupListBySysOrigin);

  Map<Long, EmojiGroupDTO> toMapEmojiGroupDTO(Map<Long, EmojiGroup> mapByIds);

  EmojiConfig toEmojiConfig(SysEmojiConfigParamCmd param);
}
