1 package org.oxerr.viagogo.model.request.catalog;
2
3 import java.util.Locale;
4
5 import org.apache.commons.lang3.builder.EqualsBuilder;
6 import org.apache.commons.lang3.builder.HashCodeBuilder;
7 import org.oxerr.viagogo.model.Link;
8 import org.oxerr.viagogo.model.request.PagedRequest;
9
10 import io.openapitools.jackson.dataformat.hal.HALLink;
11
12 public class EventRequest extends PagedRequest {
13
14 private static final long serialVersionUID = 2023021301L;
15
16 public enum Sort implements PagedRequest.Sort {
17
18 RESOURCE_VERSION;
19
20 @Override
21 public String getCode() {
22 return this.name().toLowerCase(Locale.US);
23 }
24
25 }
26
27 private Long minResourceVersion;
28
29 private String countryCode;
30
31 private Double latitude;
32
33 private Double longitude;
34
35 private Integer maxDistanceInMeters;
36
37 private Integer genreId;
38
39 public static EventRequest from(HALLink halLink) {
40 return new EventRequest(new Link(halLink));
41 }
42
43 public EventRequest() {
44 }
45
46 public EventRequest(Link link) {
47 super(link);
48
49 this.setMinResourceVersion(link.getFirstAsLong("min_resource_version"));
50 this.setCountryCode(link.getFirstAsString("country_code"));
51 this.setLatitude(link.getFirstAsDouble("latitude"));
52 this.setLongitude(link.getFirstAsDouble("longitude"));
53 this.setMaxDistanceInMeters(link.getFirstAsInteger("max_distance_in_meters"));
54 this.setGenreId(link.getFirstAsInteger("genre_id"));
55 }
56
57 public Long getMinResourceVersion() {
58 return minResourceVersion;
59 }
60
61 public void setMinResourceVersion(Long minResourceVersion) {
62 this.minResourceVersion = minResourceVersion;
63 }
64
65 public String getCountryCode() {
66 return countryCode;
67 }
68
69 public void setCountryCode(String countryCode) {
70 this.countryCode = countryCode;
71 }
72
73 public Double getLatitude() {
74 return latitude;
75 }
76
77 public void setLatitude(Double latitude) {
78 this.latitude = latitude;
79 }
80
81 public Double getLongitude() {
82 return longitude;
83 }
84
85 public void setLongitude(Double longitude) {
86 this.longitude = longitude;
87 }
88
89 public Integer getMaxDistanceInMeters() {
90 return maxDistanceInMeters;
91 }
92
93 public void setMaxDistanceInMeters(Integer maxDistanceInMeters) {
94 this.maxDistanceInMeters = maxDistanceInMeters;
95 }
96
97 public Integer getGenreId() {
98 return genreId;
99 }
100
101 public void setGenreId(Integer genreId) {
102 this.genreId = genreId;
103 }
104
105 @Override
106 public int hashCode() {
107 return HashCodeBuilder.reflectionHashCode(this);
108 }
109
110 @Override
111 public boolean equals(Object obj) {
112 if (this == obj) {
113 return true;
114 }
115 if (!(obj instanceof EventRequest)) {
116 return false;
117 }
118 EventRequest rhs = (EventRequest) obj;
119 return EqualsBuilder.reflectionEquals(this, rhs);
120 }
121
122 }