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 List meetingPoints; private final List services; public ScenicOption(Long id, String name, List meetingPoints, List services) { this.id = id; this.name = name; this.meetingPoints = meetingPoints; this.services = services; } public Long getId() { return id; } public String getName() { return name; } 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; public ServiceOption(Long id, String serviceType, Integer durationMinutes, Integer minParticipants, Integer maxParticipants) { this.id = id; this.serviceType = serviceType; this.durationMinutes = durationMinutes; this.minParticipants = minParticipants; this.maxParticipants = maxParticipants; } 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; } } }