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

import com.red.circle.framework.core.convertor.ConvertorModel;
import com.red.circle.other.infra.database.rds.entity.family.FamilyBaseInfo;
import com.red.circle.other.infra.database.rds.entity.family.FamilyCreateRules;
import com.red.circle.other.infra.database.rds.entity.family.FamilyLevelConfig;
import com.red.circle.other.infra.database.rds.entity.family.FamilyMemberInfo;
import com.red.circle.other.infra.database.rds.entity.family.FamilyRewardRule;
import com.red.circle.other.inner.model.cmd.famliy.FamilyCreateRuleCmd;
import com.red.circle.other.inner.model.cmd.famliy.FamilyLevelConfigCmd;
import com.red.circle.other.inner.model.cmd.famliy.FamilyRewardRuleCmd;
import com.red.circle.other.inner.model.dto.famliy.FamilyBaseInfoDTO;
import com.red.circle.other.inner.model.dto.famliy.FamilyCreateRuleDTO;
import com.red.circle.other.inner.model.dto.famliy.FamilyLevelConfigDTO;
import com.red.circle.other.inner.model.dto.famliy.FamilyMemberDTO;
import com.red.circle.other.inner.model.dto.famliy.FamilyMemberInfoDTO;
import com.red.circle.other.inner.model.dto.famliy.FamilyRewardRuleDTO;
import org.mapstruct.Mapper;

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

  FamilyMemberInfoDTO toFamilyMemberInfo(FamilyMemberInfo familyMemberInfo);

  FamilyBaseInfoDTO toFamilyBaseInfoDTO(FamilyBaseInfo familyBaseInfo);

  FamilyCreateRules toFamilyCreateRules(FamilyCreateRuleCmd cmd);

  FamilyCreateRuleDTO toFamilyCreateRuleDTO(FamilyCreateRules familyCreateRules);

  FamilyLevelConfigDTO toFamilyLevelConfigDTO(FamilyLevelConfig familyLevelConfig);

  FamilyLevelConfig toFamilyLevelConfig(FamilyLevelConfigCmd cmd);

  FamilyMemberDTO toFamilyMemberDTO(FamilyMemberInfo familyMember);

  FamilyRewardRuleDTO toFamilyRewardRuleDTO(FamilyRewardRule familyRewardRule);

  FamilyRewardRule toFamilyRewardRule(FamilyRewardRuleCmd cmd);
}
