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

import com.red.circle.framework.core.convertor.ConvertorModel;
import com.red.circle.other.infra.database.rds.entity.game.GameLuckyGiftCount;
import com.red.circle.other.infra.database.rds.entity.game.GameLuckyGiftRuleConfig;
import com.red.circle.other.infra.database.rds.entity.game.GameLuckyGiftStandardConfig;
import com.red.circle.other.infra.database.rds.entity.game.LuckyGiftProbability;
import com.red.circle.other.infra.database.rds.entity.game.LuckyGiftProbabilityDetails;
import com.red.circle.other.inner.model.dto.game.GameLuckyGiftDTO;
import com.red.circle.other.inner.model.dto.game.GameLuckyGiftProbabilityDTO;
import com.red.circle.other.inner.model.dto.game.GameLuckyGiftProbabilityDetailsDTO;
import com.red.circle.other.inner.model.dto.game.GameLuckyGiftRuleConfigDTO;
import com.red.circle.other.inner.model.dto.game.GameLuckyGiftStandardConfigDTO;
import java.util.List;
import org.mapstruct.Mapper;

/**
 * @author zongpubin on 2024/1/24
 */
@Mapper(componentModel = ConvertorModel.SPRING)
public interface GameLuckyGiftConfigConvertor {

  GameLuckyGiftDTO toGameLuckyGiftDTO(GameLuckyGiftCount gameLuckyGiftCount);

  GameLuckyGiftRuleConfigDTO toGameLuckyGiftRuleConfigDTO(
      GameLuckyGiftRuleConfig luckyGiftRuleConfig);

  GameLuckyGiftRuleConfig toGameLuckyGiftRuleConfig(GameLuckyGiftRuleConfigDTO param);

  GameLuckyGiftStandardConfigDTO toGameLuckyGiftStandardConfigDTO(
      GameLuckyGiftStandardConfig gameLuckyGiftStandardConfig);

  GameLuckyGiftStandardConfig toGameLuckyGiftStandardConfig(GameLuckyGiftStandardConfigDTO param);

  GameLuckyGiftProbabilityDTO toGameLuckyGiftProbabilityDTO(
      LuckyGiftProbability luckyGiftProbability);

  List<GameLuckyGiftProbabilityDetailsDTO> toListLuckyGiftProbabilityDetailsDTO(
      List<LuckyGiftProbabilityDetails> luckyGiftProbabilityDetails);

  LuckyGiftProbability toGameLuckyGiftProbability(
      GameLuckyGiftProbabilityDTO gameLuckyGiftProbability);

  LuckyGiftProbabilityDetails toLuckyGiftProbabilityDetails(
      GameLuckyGiftProbabilityDetailsDTO gameLuckyGiftProbabilityDetailsDto);
}
