Skip to content

Commit 265c9b9

Browse files
authored
refactor: preRegister 내 사전등록 조회 응답값 수정 및 Event 엔티티 eventDate 추가
1 parent fde08cd commit 265c9b9

15 files changed

Lines changed: 112 additions & 19 deletions

File tree

backend/src/main/java/com/back/api/event/dto/request/EventCreateRequest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ public record EventCreateRequest(
5757
@NotNull(message = "티켓팅 종료일은 필수입니다.")
5858
LocalDateTime ticketCloseAt,
5959

60+
@Schema(description = "이벤트 날짜", example = "2026-02-28T19:00:00")
61+
@NotNull(message = "이벤트 날짜는 필수입니다.")
62+
LocalDateTime eventDate,
63+
6064
@Schema(description = "최대 티켓 수량", example = "5000")
6165
@NotNull(message = "최대 티켓 수량은 필수입니다.")
6266
@Min(value = 1, message = "최대 티켓 수량은 1 이상이어야 합니다.")
@@ -75,6 +79,7 @@ public Event toEntity() {
7579
.preCloseAt(preCloseAt)
7680
.ticketOpenAt(ticketOpenAt)
7781
.ticketCloseAt(ticketCloseAt)
82+
.eventDate(eventDate)
7883
.maxTicketAmount(maxTicketAmount)
7984
.status(EventStatus.READY)
8085
.build();

backend/src/main/java/com/back/api/event/dto/request/EventUpdateRequest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ public record EventUpdateRequest(
5656
@NotNull(message = "티켓팅 종료일은 필수입니다.")
5757
LocalDateTime ticketCloseAt,
5858

59+
@Schema(description = "이벤트 날짜 (실제 이벤트 개최일)", example = "2026-02-15T19:00:00")
60+
@NotNull(message = "이벤트 날짜는 필수입니다.")
61+
LocalDateTime eventDate,
62+
5963
@Schema(description = "최대 티켓 수량", example = "5000")
6064
@NotNull(message = "최대 티켓 수량은 필수입니다.")
6165
@Min(value = 1, message = "최대 티켓 수량은 1 이상이어야 합니다.")

backend/src/main/java/com/back/api/event/dto/response/EventListResponse.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ public record EventListResponse(
4343
@Schema(description = "티켓팅 종료일시", example = "2026-01-30T23:59:59")
4444
LocalDateTime ticketCloseAt,
4545

46+
@Schema(description = "이벤트 날짜 (실제 이벤트 개최일)", example = "2026-02-15T19:00:00")
47+
LocalDateTime eventDate,
48+
4649
@Schema(description = "이벤트 상태 (READY: 준비중, PRE_OPEN: 사전등록중, QUEUE_READY: 대기열 준비, OPEN: 티켓팅 진행중, CLOSED: 마감)",
4750
example = "PRE_OPEN")
4851
EventStatus status,
@@ -63,6 +66,7 @@ public static EventListResponse from(Event event) {
6366
event.getPreCloseAt(),
6467
event.getTicketOpenAt(),
6568
event.getTicketCloseAt(),
69+
event.getEventDate(),
6670
event.getStatus(),
6771
event.getCreateAt()
6872
);

backend/src/main/java/com/back/api/event/dto/response/EventResponse.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ public record EventResponse(
4646
@Schema(description = "티켓팅 종료일시", example = "2026-01-30T23:59:59")
4747
LocalDateTime ticketCloseAt,
4848

49+
@Schema(description = "이벤트 날짜 (실제 이벤트 개최일)", example = "2026-02-15T19:00:00")
50+
LocalDateTime eventDate,
51+
4952
@Schema(description = "최대 티켓 수량", example = "5000")
5053
Integer maxTicketAmount,
5154

@@ -67,6 +70,7 @@ public static EventResponse from(Event event) {
6770
event.getPreCloseAt(),
6871
event.getTicketOpenAt(),
6972
event.getTicketCloseAt(),
73+
event.getEventDate(),
7074
event.getMaxTicketAmount(),
7175
event.getStatus()
7276
);

backend/src/main/java/com/back/api/event/service/EventService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ public EventResponse updateEvent(Long eventId, EventUpdateRequest request) {
6464
request.preOpenAt(),
6565
request.preCloseAt(),
6666
request.ticketOpenAt(),
67-
request.ticketCloseAt()
67+
request.ticketCloseAt(),
68+
request.eventDate()
6869
);
6970
event.changeStatus(request.status());
7071

backend/src/main/java/com/back/api/preregister/dto/response/PreRegisterResponse.java

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.time.LocalDateTime;
44

5+
import com.back.domain.event.entity.Event;
56
import com.back.domain.preregister.entity.PreRegister;
67
import com.back.domain.preregister.entity.PreRegisterStatus;
78

@@ -13,26 +14,47 @@ public record PreRegisterResponse(
1314
@Schema(description = "사전등록 ID", example = "1")
1415
Long id,
1516

16-
@Schema(description = "이벤트 ID", example = "1")
17-
Long eventId,
18-
1917
@Schema(description = "사용자 ID", example = "1")
2018
Long userId,
2119

20+
@Schema(description = "이벤트 ID", example = "1")
21+
Long eventId,
22+
2223
@Schema(description = "사전등록 상태", example = "REGISTERED")
2324
PreRegisterStatus status,
2425

2526
@Schema(description = "등록일시", example = "2025-12-10T10:00:00")
26-
LocalDateTime createdAt
27+
LocalDateTime createdAt,
28+
29+
@Schema(description = "이벤트 이미지 URL", example = "https://example.com/image.jpg")
30+
String imageUrl,
31+
32+
@Schema(description = "이벤트 제목", example = "아이유 콘서트")
33+
String eventTitle,
34+
35+
@Schema(description = "이벤트 날짜", example = "2025-03-15T19:00:00")
36+
LocalDateTime eventDate,
37+
38+
@Schema(description = "이벤트 장소", example = "잠실 올림픽 주경기장")
39+
String place,
40+
41+
@Schema(description = "티켓 오픈 날짜", example = "2025-02-20T10:00:00")
42+
LocalDateTime ticketOpenAt
2743
) {
2844

2945
public static PreRegisterResponse from(PreRegister preRegister) {
46+
Event event = preRegister.getEvent();
3047
return new PreRegisterResponse(
3148
preRegister.getId(),
32-
preRegister.getEventId(),
3349
preRegister.getUserId(),
50+
preRegister.getEventId(),
3451
preRegister.getPreRegisterStatus(),
35-
preRegister.getCreateAt()
52+
preRegister.getCreateAt(),
53+
event.getImageUrl(),
54+
event.getTitle(),
55+
event.getEventDate(),
56+
event.getPlace(),
57+
event.getTicketOpenAt()
3658
);
3759
}
3860
}

backend/src/main/java/com/back/domain/event/entity/Event.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ public class Event extends BaseEntity {
6161
@Column(nullable = false)
6262
private LocalDateTime ticketCloseAt;
6363

64+
@Column(nullable = false)
65+
private LocalDateTime eventDate;
66+
6467
@Column(nullable = false)
6568
private Integer maxTicketAmount;
6669

@@ -76,7 +79,7 @@ public Event(String title, EventCategory category, String description, String pl
7679
String imageUrl, Integer minPrice, Integer maxPrice,
7780
LocalDateTime preOpenAt, LocalDateTime preCloseAt,
7881
LocalDateTime ticketOpenAt, LocalDateTime ticketCloseAt,
79-
Integer maxTicketAmount, EventStatus status) {
82+
LocalDateTime eventDate, Integer maxTicketAmount, EventStatus status) {
8083
validatePrice(minPrice, maxPrice);
8184
this.title = title;
8285
this.category = category;
@@ -89,6 +92,7 @@ public Event(String title, EventCategory category, String description, String pl
8992
this.preCloseAt = preCloseAt;
9093
this.ticketOpenAt = ticketOpenAt;
9194
this.ticketCloseAt = ticketCloseAt;
95+
this.eventDate = eventDate;
9296
this.maxTicketAmount = maxTicketAmount;
9397
this.status = status != null ? status : EventStatus.READY;
9498
this.deleted = false;
@@ -111,11 +115,12 @@ public void changePriceInfo(Integer minPrice, Integer maxPrice, Integer maxTicke
111115
}
112116

113117
public void changePeriod(LocalDateTime preOpenAt, LocalDateTime preCloseAt,
114-
LocalDateTime ticketOpenAt, LocalDateTime ticketCloseAt) {
118+
LocalDateTime ticketOpenAt, LocalDateTime ticketCloseAt, LocalDateTime eventDate) {
115119
this.preOpenAt = preOpenAt;
116120
this.preCloseAt = preCloseAt;
117121
this.ticketOpenAt = ticketOpenAt;
118122
this.ticketCloseAt = ticketCloseAt;
123+
this.eventDate = eventDate;
119124
}
120125

121126
public void changeStatus(EventStatus status) {

backend/src/main/java/com/back/global/init/EventDataInit.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public void run(ApplicationArguments args) {
4848
.preCloseAt(now.plusDays(7))
4949
.ticketOpenAt(now.plusDays(10))
5050
.ticketCloseAt(now.plusDays(30))
51+
.eventDate(now.plusDays(40))
5152
.maxTicketAmount(5000)
5253
.status(EventStatus.PRE_OPEN)
5354
.build();
@@ -64,6 +65,7 @@ public void run(ApplicationArguments args) {
6465
.preCloseAt(now.plusDays(3))
6566
.ticketOpenAt(now.plusDays(5))
6667
.ticketCloseAt(now.plusDays(7))
68+
.eventDate(now.plusDays(10))
6769
.maxTicketAmount(500)
6870
.status(EventStatus.READY)
6971
.build();
@@ -80,11 +82,11 @@ public void run(ApplicationArguments args) {
8082
.preCloseAt(now.minusDays(8))
8183
.ticketOpenAt(now.minusDays(5))
8284
.ticketCloseAt(now.plusDays(14))
85+
.eventDate(now.plusDays(21))
8386
.maxTicketAmount(3000)
8487
.status(EventStatus.PRE_OPEN)
8588
.build();
8689

87-
8890
Event event4 = Event.builder()
8991
.title("2025 스프링 재즈 나이트")
9092
.category(EventCategory.CONCERT)
@@ -97,6 +99,7 @@ public void run(ApplicationArguments args) {
9799
.preCloseAt(now.minusDays(8))
98100
.ticketOpenAt(now.plusHours(1).plusMinutes(5))
99101
.ticketCloseAt(now.plusDays(14))
102+
.eventDate(now.plusDays(21))
100103
.maxTicketAmount(3000)
101104
.status(EventStatus.PRE_OPEN)
102105
.build();

backend/src/main/java/com/back/global/init/perf/PerfEventDataInitializer.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public void init(int eventCount) {
4848
.preCloseAt(now.plusDays(5))
4949
.ticketOpenAt(now.plusDays(7))
5050
.ticketCloseAt(now.plusDays(30))
51+
.eventDate(now.plusDays(35))
5152
.maxTicketAmount(500)
5253
.status(EventStatus.PRE_OPEN)
5354
.build());
@@ -65,6 +66,7 @@ public void init(int eventCount) {
6566
.preCloseAt(now.minusDays(3))
6667
.ticketOpenAt(now.plusMinutes(30))
6768
.ticketCloseAt(now.plusDays(20))
69+
.eventDate(now.plusDays(25))
6870
.maxTicketAmount(500)
6971
.status(EventStatus.QUEUE_READY)
7072
.build());
@@ -82,6 +84,7 @@ public void init(int eventCount) {
8284
.preCloseAt(now.minusDays(2))
8385
.ticketOpenAt(now.minusHours(1))
8486
.ticketCloseAt(now.plusDays(3))
87+
.eventDate(now.plusDays(8))
8588
.maxTicketAmount(500)
8689
.status(EventStatus.OPEN)
8790
.build());
@@ -100,6 +103,7 @@ public void init(int eventCount) {
100103
.preCloseAt(now.minusDays(20))
101104
.ticketOpenAt(now.minusDays(15))
102105
.ticketCloseAt(now.minusDays(10))
106+
.eventDate(now.minusDays(5))
103107
.maxTicketAmount(500)
104108
.status(EventStatus.CLOSED)
105109
.build());
@@ -138,6 +142,7 @@ private Event createConcertEvent(String title, LocalDateTime baseTime,
138142
.preCloseAt(baseTime.plusDays(9))
139143
.ticketOpenAt(baseTime.plusDays(12))
140144
.ticketCloseAt(baseTime.plusDays(30))
145+
.eventDate(baseTime.plusDays(35))
141146
.maxTicketAmount(maxTickets)
142147
.status(EventStatus.READY)
143148
.build();
@@ -157,6 +162,7 @@ private Event createPopupEvent(String title, LocalDateTime baseTime,
157162
.preCloseAt(baseTime.plusDays(5))
158163
.ticketOpenAt(baseTime.plusDays(7))
159164
.ticketCloseAt(baseTime.plusDays(21))
165+
.eventDate(baseTime.plusDays(25))
160166
.maxTicketAmount(maxTickets)
161167
.status(EventStatus.READY)
162168
.build();
@@ -176,6 +182,7 @@ private Event createDropEvent(String title, LocalDateTime baseTime,
176182
.preCloseAt(baseTime.plusDays(3))
177183
.ticketOpenAt(baseTime.plusDays(5))
178184
.ticketCloseAt(baseTime.plusDays(10))
185+
.eventDate(baseTime.plusDays(12))
179186
.maxTicketAmount(maxTickets)
180187
.status(EventStatus.READY)
181188
.build();

backend/src/test/java/com/back/api/event/controller/AdminEventControllerTest.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ class AdminEventControllerTest {
5252
private LocalDateTime preCloseAt;
5353
private LocalDateTime ticketOpenAt;
5454
private LocalDateTime ticketCloseAt;
55+
private LocalDateTime eventDate;
5556

5657
@BeforeEach
5758
void setUp() {
@@ -61,6 +62,7 @@ void setUp() {
6162
preCloseAt = now.plusDays(5);
6263
ticketOpenAt = now.plusDays(6);
6364
ticketCloseAt = now.plusDays(10);
65+
eventDate = now.plusDays(15);
6466
}
6567

6668
@Nested
@@ -83,6 +85,7 @@ void createEvent_Success() throws Exception {
8385
preCloseAt,
8486
ticketOpenAt,
8587
ticketCloseAt,
88+
eventDate,
8689
100
8790
);
8891

@@ -113,7 +116,7 @@ void createEvent_Fail_WhenTitleIsBlank() throws Exception {
113116
"",
114117
EventCategory.CONCERT,
115118
"설명", "장소", "url", 1000, 2000,
116-
preOpenAt, preCloseAt, ticketOpenAt, ticketCloseAt, 100
119+
preOpenAt, preCloseAt, ticketOpenAt, ticketCloseAt, eventDate, 100
117120
);
118121

119122
// when & then
@@ -134,6 +137,7 @@ void createEvent_Fail_InvalidDate() throws Exception {
134137
preOpenAt, preCloseAt,
135138
ticketCloseAt.plusDays(1),
136139
ticketCloseAt,
140+
eventDate,
137141
100
138142
);
139143

@@ -170,6 +174,7 @@ void updateEvent_Success() throws Exception {
170174
preCloseAt,
171175
ticketOpenAt,
172176
ticketCloseAt,
177+
now.plusDays(35),
173178
200,
174179
EventStatus.PRE_OPEN
175180
);
@@ -197,7 +202,7 @@ void updateEvent_Fail_NotFound() throws Exception {
197202
EventUpdateRequest request = new EventUpdateRequest(
198203
"수정", EventCategory.CONCERT, "설명", "장소", "url",
199204
1000, 2000, preOpenAt, preCloseAt, ticketOpenAt, ticketCloseAt,
200-
100, EventStatus.READY
205+
now.plusDays(35), 100, EventStatus.READY
201206
);
202207

203208
// when & then

0 commit comments

Comments
 (0)