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

import com.red.circle.framework.core.convertor.ConvertorModel;
import com.red.circle.other.infra.database.rds.entity.user.user.InviteCarouselAwards;
import com.red.circle.other.infra.database.rds.entity.user.user.InviteConfig;
import com.red.circle.other.infra.database.rds.entity.user.user.InviteRedPacketDrawLog;
import com.red.circle.other.infra.database.rds.entity.user.user.InviteRedPacketHelp;
import com.red.circle.other.infra.database.rds.entity.user.user.InviteRedPacketRecord;
import com.red.circle.other.infra.database.rds.entity.user.user.InviteTargetTransitBalance;
import com.red.circle.other.infra.database.rds.entity.user.user.InviteWithdrawTransitBalance;
import com.red.circle.other.inner.model.cmd.user.invite.InviteConfigCmd;
import com.red.circle.other.inner.model.dto.user.invite.InviteBalanceDTO;
import com.red.circle.other.inner.model.dto.user.invite.InviteCarouselAwardsBackDTO;
import com.red.circle.other.inner.model.dto.user.invite.InviteConfigDTO;
import com.red.circle.other.inner.model.dto.user.invite.InviteRedPacketDTO;
import com.red.circle.other.inner.model.dto.user.invite.InviteRedPacketDrawLogDTO;
import com.red.circle.other.inner.model.dto.user.invite.InviteRedPacketHelpLogDTO;
import java.util.List;
import org.mapstruct.Mapper;

/**
 * @author pengshigang on 2024/01/05
 */
@Mapper(componentModel = ConvertorModel.SPRING)
public interface RedPacketInviteNewUserInnerConvertor {

  InviteBalanceDTO toInviteTargetTransitBalanceDTO(InviteTargetTransitBalance balance);

  InviteBalanceDTO toInviteWithdrawTransitBalanceDTO(InviteWithdrawTransitBalance balance);

  InviteRedPacketDrawLogDTO toInviteRedPacketDrawLogDTO(InviteRedPacketDrawLog log);

  InviteRedPacketHelpLogDTO toInviteRedPacketHelpDTO(InviteRedPacketHelp help);

  InviteRedPacketDTO toInviteRedPacketDTO(InviteRedPacketRecord redPacketRecord);

  List<InviteCarouselAwardsBackDTO> toInviteCarouselAwardsBackDTOList(
      List<InviteCarouselAwards> awards);

  InviteConfigDTO toInviteConfigDTO(InviteConfig inviteConfig);

  InviteConfig toInviteConfigCmd(InviteConfigCmd cmd);

}
