1
1
package org .eventplanner .events .adapter .jpa ;
2
2
3
- import com .fasterxml .jackson .core .type .TypeReference ;
4
- import com .fasterxml .jackson .databind .ObjectMapper ;
5
- import jakarta .persistence .Column ;
6
- import jakarta .persistence .Entity ;
7
- import jakarta .persistence .Id ;
8
- import jakarta .persistence .Table ;
9
- import lombok .*;
3
+ import java .io .IOException ;
4
+ import java .time .ZonedDateTime ;
5
+ import java .time .format .DateTimeFormatter ;
6
+ import java .util .Collections ;
7
+ import java .util .List ;
8
+
10
9
import org .eventplanner .events .entities .Event ;
11
10
import org .eventplanner .events .entities .Registration ;
12
11
import org .eventplanner .events .entities .Slot ;
13
12
import org .eventplanner .events .values .EventKey ;
14
13
import org .eventplanner .events .values .EventState ;
15
14
import org .eventplanner .events .values .Location ;
16
15
17
- import java .io .IOException ;
18
- import java .time .ZonedDateTime ;
19
- import java .time .format .DateTimeFormatter ;
20
- import java .util .Collections ;
21
- import java .util .List ;
16
+ import com .fasterxml .jackson .core .type .TypeReference ;
17
+ import com .fasterxml .jackson .databind .ObjectMapper ;
18
+ import jakarta .persistence .Column ;
19
+ import jakarta .persistence .Entity ;
20
+ import jakarta .persistence .Id ;
21
+ import jakarta .persistence .Table ;
22
+ import lombok .EqualsAndHashCode ;
23
+ import lombok .Getter ;
24
+ import lombok .NoArgsConstructor ;
25
+ import lombok .NonNull ;
26
+ import lombok .Setter ;
22
27
23
28
@ Entity
24
29
@ Table (name = "events" )
@@ -30,7 +35,7 @@ public class EventJpaEntity {
30
35
private static final ObjectMapper objectMapper = new ObjectMapper ();
31
36
32
37
@ Id
33
- @ Column (name = "key" , nullable = false )
38
+ @ Column (name = "key" , nullable = false , updatable = false )
34
39
private String key ;
35
40
36
41
@ Column (name = "year" , nullable = false )
@@ -63,9 +68,26 @@ public class EventJpaEntity {
63
68
@ Column (name = "registrations" )
64
69
private String registrationsRaw ;
65
70
71
+ public static @ NonNull EventJpaEntity fromDomain (@ NonNull Event domain ) {
72
+ var eventJpaEntity = new EventJpaEntity ();
73
+ eventJpaEntity .setKey (domain .getKey ().value ());
74
+ eventJpaEntity .setYear (domain .getStart ().getYear ());
75
+ eventJpaEntity .setName (domain .getName ());
76
+ eventJpaEntity .setState (domain .getState ().value ());
77
+ eventJpaEntity .setNote (domain .getNote ());
78
+ eventJpaEntity .setDescription (domain .getDescription ());
79
+ eventJpaEntity .setStart (domain .getStart ().format (DateTimeFormatter .ISO_DATE_TIME ));
80
+ eventJpaEntity .setEnd (domain .getStart ().format (DateTimeFormatter .ISO_DATE_TIME ));
81
+ eventJpaEntity .setLocations (domain .getLocations ());
82
+ eventJpaEntity .setSlots (domain .getSlots ());
83
+ eventJpaEntity .setRegistrations (domain .getRegistrations ());
84
+ return eventJpaEntity ;
85
+ }
86
+
66
87
public List <Location > getLocations () {
67
88
try {
68
- return objectMapper .readValue (locationsRaw , new TypeReference <>() {});
89
+ return objectMapper .readValue (locationsRaw , new TypeReference <>() {
90
+ });
69
91
} catch (IOException e ) {
70
92
return Collections .emptyList ();
71
93
}
@@ -81,7 +103,8 @@ public void setLocations(List<Location> locations) {
81
103
82
104
public List <Slot > getSlots () {
83
105
try {
84
- return objectMapper .readValue (slotsRaw , new TypeReference <>() {});
106
+ return objectMapper .readValue (slotsRaw , new TypeReference <>() {
107
+ });
85
108
} catch (IOException e ) {
86
109
return Collections .emptyList ();
87
110
}
@@ -97,7 +120,8 @@ public void setSlots(List<Slot> slots) {
97
120
98
121
public List <Registration > getRegistrations () {
99
122
try {
100
- return objectMapper .readValue (registrationsRaw , new TypeReference <>() {});
123
+ return objectMapper .readValue (registrationsRaw , new TypeReference <>() {
124
+ });
101
125
} catch (IOException e ) {
102
126
return Collections .emptyList ();
103
127
}
@@ -111,34 +135,18 @@ public void setRegistrations(List<Registration> registrations) {
111
135
}
112
136
}
113
137
114
- public static @ NonNull EventJpaEntity fromDomain (@ NonNull Event domain ) {
115
- var eventJpaEntity = new EventJpaEntity ();
116
- eventJpaEntity .setKey (domain .getKey ().value ());
117
- eventJpaEntity .setYear (domain .getStart ().getYear ());
118
- eventJpaEntity .setName (domain .getName ());
119
- eventJpaEntity .setState (domain .getState ().value ());
120
- eventJpaEntity .setNote (domain .getNote ());
121
- eventJpaEntity .setDescription (domain .getDescription ());
122
- eventJpaEntity .setStart (domain .getStart ().format (DateTimeFormatter .ISO_DATE_TIME ));
123
- eventJpaEntity .setEnd (domain .getStart ().format (DateTimeFormatter .ISO_DATE_TIME ));
124
- eventJpaEntity .setLocations (domain .getLocations ());
125
- eventJpaEntity .setSlots (domain .getSlots ());
126
- eventJpaEntity .setRegistrations (domain .getRegistrations ());
127
- return eventJpaEntity ;
128
- }
129
-
130
138
public Event toDomain () {
131
139
return new Event (
132
- new EventKey (key ),
133
- name ,
134
- EventState .fromString (state ).orElse (EventState .PLANNED ),
135
- note != null ? note : "" ,
136
- description != null ? description : "" ,
137
- ZonedDateTime .parse (start ),
138
- ZonedDateTime .parse (end ),
139
- getLocations (),
140
- getSlots (),
141
- getRegistrations ()
140
+ new EventKey (key ),
141
+ name ,
142
+ EventState .fromString (state ).orElse (EventState .PLANNED ),
143
+ note != null ? note : "" ,
144
+ description != null ? description : "" ,
145
+ ZonedDateTime .parse (start ),
146
+ ZonedDateTime .parse (end ),
147
+ getLocations (),
148
+ getSlots (),
149
+ getRegistrations ()
142
150
);
143
151
}
144
152
}
0 commit comments