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

import com.red.circle.framework.core.convertor.ConvertorModel;
import com.red.circle.other.infra.database.mongo.dto.query.GiftGiveRunningWaterQuery;
import com.red.circle.other.infra.database.mongo.entity.gift.GiftGiveRunningWater;
import com.red.circle.other.infra.database.mongo.entity.live.RoomProfile;
import com.red.circle.other.infra.database.rds.entity.gift.GiftConfig;
import com.red.circle.other.infra.database.rds.entity.gift.GiftWall;
import com.red.circle.other.inner.model.cmd.gift.GiftGiveRunningWaterBackQryCmd;
import com.red.circle.other.inner.model.dto.gift.GiftGiveRunningWaterDTO;
import com.red.circle.other.inner.model.dto.gift.UserGiftWallDTO;
import com.red.circle.other.inner.model.dto.live.RoomProfileDTO;
import com.red.circle.other.inner.model.dto.material.GiftConfigDTO;
import java.util.List;
import java.util.Map;
import org.mapstruct.Mapper;

/**
 * @author pengliang on 2023/12/15
 */
@Mapper(componentModel = ConvertorModel.SPRING)
public interface GiftInnerConvertor {

  Map<Long, GiftConfigDTO> toMapGiftConfigDTO(Map<Long, GiftConfig> map);

  GiftConfigDTO toGiftConfigDTO(GiftConfig giftConfig);

  GiftConfig toGiftConfig(GiftConfigDTO giftConfigDTO);

  RoomProfileDTO toRoomProfileDTO(RoomProfile roomProfile);

  GiftGiveRunningWaterDTO toGiftGiveRunningWaterDTO(GiftGiveRunningWater giftGiveRunningWater);

  GiftGiveRunningWaterQuery toGiftGiveRunningWater(GiftGiveRunningWaterBackQryCmd cmd);

  List<UserGiftWallDTO> toListUserGiftWallDTO(List<GiftWall> giftWall);

  List<GiftConfigDTO> toListGiftConfigDTO(List<GiftConfig> listByIds);
}
