Skip to content

Commit 630ffa7

Browse files
Setting up event details
1 parent c272501 commit 630ffa7

4 files changed

Lines changed: 64 additions & 34 deletions

File tree

src/main/java/org/launchcode/codingevents/models/Event.java

Lines changed: 15 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package org.launchcode.codingevents.models;
22

3+
import jakarta.persistence.CascadeType;
34
import jakarta.persistence.Entity;
45
import jakarta.persistence.ManyToOne;
5-
import jakarta.validation.constraints.Email;
6+
import jakarta.persistence.OneToOne;
7+
import jakarta.validation.Valid;
68
import jakarta.validation.constraints.NotBlank;
79
import jakarta.validation.constraints.NotNull;
810
import jakarta.validation.constraints.Size;
@@ -17,21 +19,17 @@ public class Event extends AbstractEntity {
1719
@Size(min = 3, max = 50, message = "Name must be between 3 and 50 characters")
1820
private String name;
1921

20-
@Size(max = 500, message = "Description too long!")
21-
private String description;
22-
23-
@NotBlank(message = "Email is required")
24-
@Email(message = "Invalid email. Try again.")
25-
private String contactEmail;
22+
@OneToOne(cascade = CascadeType.ALL)
23+
@Valid
24+
@NotNull
25+
private EventDetails eventDetails;
2626

2727
@ManyToOne
2828
@NotNull(message = "Category is required")
2929
private EventCategory eventCategory;
3030

31-
public Event(String name, String description, String contactEmail, EventCategory eventCategory) {
31+
public Event(String name, EventCategory eventCategory) {
3232
this.name = name;
33-
this.description = description;
34-
this.contactEmail = contactEmail;
3533
this.eventCategory = eventCategory;
3634
}
3735

@@ -45,22 +43,6 @@ public void setName(String name) {
4543
this.name = name;
4644
}
4745

48-
public String getDescription() {
49-
return description;
50-
}
51-
52-
public void setDescription(String description) {
53-
this.description = description;
54-
}
55-
56-
public String getContactEmail() {
57-
return contactEmail;
58-
}
59-
60-
public void setContactEmail(String contactEmail) {
61-
this.contactEmail = contactEmail;
62-
}
63-
6446
public EventCategory getEventCategory() {
6547
return eventCategory;
6648
}
@@ -69,6 +51,13 @@ public void setEventCategory(EventCategory eventCategory) {
6951
this.eventCategory = eventCategory;
7052
}
7153

54+
public EventDetails getEventDetails() {
55+
return eventDetails;
56+
}
57+
58+
public void setEventDetails(EventDetails eventDetails) {
59+
this.eventDetails = eventDetails;
60+
}
7261
@Override
7362
public String toString() {
7463
return name;
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package org.launchcode.codingevents.models;
2+
3+
import jakarta.persistence.Entity;
4+
import jakarta.persistence.OneToOne;
5+
import jakarta.validation.constraints.Email;
6+
import jakarta.validation.constraints.NotBlank;
7+
import jakarta.validation.constraints.Size;
8+
9+
@Entity
10+
public class EventDetails extends AbstractEntity {
11+
12+
@Size(max = 500, message = "Description too long!")
13+
private String description;
14+
15+
@NotBlank(message = "Email is required")
16+
@Email(message = "Invalid email. Try again.")
17+
private String contactEmail;
18+
19+
public EventDetails(@Size(max = 500, message = "Description too long!") String description, @NotBlank(message = "Email is required") @Email(message = "Invalid email. Try again.") String contactEmail) {
20+
this.description = description;
21+
this.contactEmail = contactEmail;
22+
}
23+
24+
public EventDetails() {}
25+
26+
public String getDescription() {
27+
return description;
28+
}
29+
30+
public void setDescription(String description) {
31+
this.description = description;
32+
}
33+
34+
public String getContactEmail() {
35+
return contactEmail;
36+
}
37+
38+
public void setContactEmail(String contactEmail) {
39+
this.contactEmail = contactEmail;
40+
}
41+
}

src/main/resources/templates/events/create.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<!DOCTYPE html>
22
<html lang="en" xmlns:th="http://www.thymeleaf.org/">
3-
<head th:replace="fragments :: head"></head>
3+
<head th:replace="~{fragments :: head}"></head>
44
<body class="container">
55

6-
<header th:replace="fragments :: header"></header>
6+
<header th:replace="~{fragments :: header}"></header>
77

88
<p th:text="${errorMsg}" style="color:red;"></p>
99

@@ -16,15 +16,15 @@
1616
</div>
1717
<div class="form-group">
1818
<label>Description
19-
<input th:field="${event.description}" class="form-control">
19+
<input th:field="${event.eventDetails.description}" class="form-control">
2020
</label>
21-
<p class="error" th:errors="${event.description}"></p>
21+
<p class="error" th:errors="${event.eventDetails.description}"></p>
2222
</div>
2323
<div class="form-group">
2424
<label>Contact Email
25-
<input th:field="${event.contactEmail}" class="form-control">
25+
<input th:field="${event.eventDetails.contactEmail}" class="form-control">
2626
</label>
27-
<p class="error" th:errors="${event.contactEmail}"></p>
27+
<p class="error" th:errors="${event.eventDetails.contactEmail}"></p>
2828
</div>
2929
<div class="form-group">
3030
<label>Category

src/main/resources/templates/events/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
<tr th:each="event : ${events}">
1919
<td th:text="${event.id}"></td>
2020
<td th:text="${event.name}"></td>
21-
<td th:text="${event.description}"></td>
22-
<td th:text="${event.contactEmail}"></td>
21+
<td th:text="${event.eventDetails.description}"></td>
22+
<td th:text="${event.eventDetails.contactEmail}"></td>
2323
<td th:text="${event.eventCategory.name}"></td>
2424
</tr>
2525
</table>

0 commit comments

Comments
 (0)