package com.tourguide.modules.user.dto; import java.math.BigDecimal; import java.util.List; public class GuideReceivingOptionResponse { private final boolean premiumEnabled; private final long requiredOrderCount; private final BigDecimal requiredRating; private final List scenics; public GuideReceivingOptionResponse(boolean premiumEnabled, long requiredOrderCount, BigDecimal requiredRating, List scenics) { this.premiumEnabled = premiumEnabled; this.requiredOrderCount = requiredOrderCount; this.requiredRating = requiredRating; this.scenics = scenics; } public boolean isPremiumEnabled() { return premiumEnabled; } public long getRequiredOrderCount() { return requiredOrderCount; } public BigDecimal getRequiredRating() { return requiredRating; } public List getScenics() { return scenics; } public static class ScenicOption { private final Long id; private final String name; private final Integer firstOrderLeadMinutes; private final List meetingPoints; private final List services; public ScenicOption(Long id, String name, Integer firstOrderLeadMinutes, List meetingPoints, List services) { this.id = id; this.name = name; this.firstOrderLeadMinutes = firstOrderLeadMinutes; this.meetingPoints = meetingPoints; this.services = services; } public Long getId() { return id; } public String getName() { return name; } public Integer getFirstOrderLeadMinutes() { return firstOrderLeadMinutes; } public List getMeetingPoints() { return meetingPoints; } public List getServices() { return services; } } public static class MeetingPointOption { private final Long id; private final String name; private final BigDecimal longitude; private final BigDecimal latitude; public MeetingPointOption(Long id, String name, BigDecimal longitude, BigDecimal latitude) { this.id = id; this.name = name; this.longitude = longitude; this.latitude = latitude; } public Long getId() { return id; } public String getName() { return name; } public BigDecimal getLongitude() { return longitude; } public BigDecimal getLatitude() { return latitude; } } public static class ServiceOption { private final Long id; private final String serviceType; private final Integer durationMinutes; private final Integer minParticipants; private final Integer maxParticipants; private final BigDecimal originalPrice; private final BigDecimal discountPrice; public ServiceOption(Long id, String serviceType, Integer durationMinutes, Integer minParticipants, Integer maxParticipants, BigDecimal originalPrice, BigDecimal discountPrice) { this.id = id; this.serviceType = serviceType; this.durationMinutes = durationMinutes; this.minParticipants = minParticipants; this.maxParticipants = maxParticipants; this.originalPrice = originalPrice; this.discountPrice = discountPrice; } public Long getId() { return id; } public String getServiceType() { return serviceType; } public Integer getDurationMinutes() { return durationMinutes; } public Integer getMinParticipants() { return minParticipants; } public Integer getMaxParticipants() { return maxParticipants; } public BigDecimal getOriginalPrice() { return originalPrice; } public BigDecimal getDiscountPrice() { return discountPrice; } } }