package com.tourguide.modules.user.dto; import com.tourguide.modules.user.entity.GuideTeam; import com.tourguide.modules.user.entity.GuideTeamScenicConfig; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; public class GuideTeamResponse { private Long id; private String teamName; private String contactPhone; private String operatingArea; private String companyName; private String unifiedSocialCreditCode; private BigDecimal commissionRatio; private String wechatOpenId; private String merchantId; private BigDecimal balance; private Long collectionGuideId; private Integer status; private LocalDateTime createdAt; private LocalDateTime updatedAt; private List scenicConfigs; public static GuideTeamResponse from(GuideTeam team) { return from(team, Collections.emptyList()); } public static GuideTeamResponse from(GuideTeam team, List scenicConfigs) { GuideTeamResponse response = new GuideTeamResponse(); response.id = team.getId(); response.teamName = team.getTeamName(); response.contactPhone = team.getContactPhone(); response.operatingArea = team.getOperatingArea(); response.companyName = team.getCompanyName(); response.unifiedSocialCreditCode = team.getUnifiedSocialCreditCode(); response.commissionRatio = team.getCommissionRatio(); response.wechatOpenId = team.getWechatOpenId(); response.merchantId = team.getMerchantId(); response.balance = team.getBalance() == null ? BigDecimal.ZERO : team.getBalance(); response.collectionGuideId = team.getCollectionGuideId(); response.status = team.getStatus(); response.createdAt = team.getCreatedAt(); response.updatedAt = team.getUpdatedAt(); response.scenicConfigs = scenicConfigs.stream() .map(GuideTeamScenicResponse::from) .collect(Collectors.toList()); return response; } public Long getId() { return id; } public String getTeamName() { return teamName; } public String getContactPhone() { return contactPhone; } public String getOperatingArea() { return operatingArea; } public String getCompanyName() { return companyName; } public String getUnifiedSocialCreditCode() { return unifiedSocialCreditCode; } public BigDecimal getCommissionRatio() { return commissionRatio; } public String getWechatOpenId() { return wechatOpenId; } public String getMerchantId() { return merchantId; } public BigDecimal getBalance() { return balance; } public Long getCollectionGuideId() { return collectionGuideId; } public Integer getStatus() { return status; } public LocalDateTime getCreatedAt() { return createdAt; } public LocalDateTime getUpdatedAt() { return updatedAt; } public List getScenicConfigs() { return scenicConfigs; } }