package com.tourguide.modules.review.dto; import com.tourguide.modules.review.entity.OrderReview; import com.tourguide.modules.review.util.ReviewImageParser; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; public class OrderReviewResponse { private final Long id; private final String reviewNo; private final Long orderId; private final String orderNo; private final LocalDateTime orderPlacedAt; private final Long visitorId; private final String visitorNickname; private final String visitorMobile; private final Long guideId; private final String guideName; private final String guideMobile; private final String scenicName; private final BigDecimal score; private final String content; private final LocalDateTime reviewedAt; private final Integer status; private final List images; public OrderReviewResponse(OrderReview review) { this.id = review.getId(); this.reviewNo = review.getReviewNo(); this.orderId = review.getOrderId(); this.orderNo = review.getOrderNo(); this.orderPlacedAt = review.getOrderPlacedAt(); this.visitorId = review.getVisitorId(); this.visitorNickname = review.getVisitorNickname(); this.visitorMobile = review.getVisitorMobile(); this.guideId = review.getGuideId(); this.guideName = review.getGuideName(); this.guideMobile = review.getGuideMobile(); this.scenicName = review.getScenicName(); this.score = review.getScore(); this.content = review.getContent(); this.reviewedAt = review.getReviewedAt(); this.status = review.getStatus(); this.images = parseImages(review.getImageUrls()); } public Long getId() { return id; } public String getReviewNo() { return reviewNo; } public Long getOrderId() { return orderId; } public String getOrderNo() { return orderNo; } public LocalDateTime getOrderPlacedAt() { return orderPlacedAt; } public Long getVisitorId() { return visitorId; } public String getVisitorNickname() { return visitorNickname; } public String getVisitorMobile() { return visitorMobile; } public Long getGuideId() { return guideId; } public String getGuideName() { return guideName; } public String getGuideMobile() { return guideMobile; } public String getScenicName() { return scenicName; } public BigDecimal getScore() { return score; } public String getContent() { return content; } public LocalDateTime getReviewedAt() { return reviewedAt; } public Integer getStatus() { return status; } public List getImages() { return images; } private static List parseImages(String value) { return ReviewImageParser.parse(value); } }