From 9c029e1b18ecd514b08621e34e9af144870a01a3 Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Mon, 12 Jan 2026 19:36:21 +0900 Subject: [PATCH 1/5] =?UTF-8?q?refactor:=20StudentCouncilPost=20=EC=97=94?= =?UTF-8?q?=ED=8B=B0=ED=8B=B0=20=EB=82=B4=20detailedLocation=20=ED=95=84?= =?UTF-8?q?=EB=93=9C=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=ED=96=89=EC=82=AC?= =?UTF-8?q?=20=EA=B8=80=20=EC=83=9D=EC=84=B1=20=EC=8B=9C=20detailedLocatio?= =?UTF-8?q?n=EB=8F=84=20=EC=9E=85=EB=A0=A5=ED=95=A0=20=EC=88=98=20?= =?UTF-8?q?=EC=9E=88=EB=8F=84=EB=A1=9D=20=EA=B5=AC=ED=98=84,=20=EA=B2=8C?= =?UTF-8?q?=EC=8B=9C=EA=B8=80=20=EC=83=9D=EC=84=B1=20=EB=B0=98=ED=99=98?= =?UTF-8?q?=EA=B0=92/=ED=95=99=EC=83=9D=ED=9A=8C=20=EA=B2=8C=EC=8B=9C?= =?UTF-8?q?=EA=B8=80=20=EC=83=81=EC=84=B8=20=EC=A1=B0=ED=9A=8C=20=EB=B0=98?= =?UTF-8?q?=ED=99=98=EA=B0=92=EC=97=90=20detailedLocation=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../councilpost/application/dto/request/PostRequest.java | 3 +++ .../application/dto/response/GetPostForUserResponse.java | 1 + .../application/dto/response/GetPostResponse.java | 1 + .../application/mapper/StudentCouncilPostMapper.java | 3 +++ .../application/service/StudentCouncilPostService.java | 1 + .../domain/councilpost/domain/entity/StudentCouncilPost.java | 5 +++++ .../presentation/StudentCouncilPostController.java | 1 + 7 files changed, 15 insertions(+) diff --git a/src/main/java/com/campus/campus/domain/councilpost/application/dto/request/PostRequest.java b/src/main/java/com/campus/campus/domain/councilpost/application/dto/request/PostRequest.java index 400eccf3..5696eebc 100644 --- a/src/main/java/com/campus/campus/domain/councilpost/application/dto/request/PostRequest.java +++ b/src/main/java/com/campus/campus/domain/councilpost/application/dto/request/PostRequest.java @@ -45,6 +45,9 @@ public record PostRequest( @Valid SavedPlaceInfo place, + @Schema(description = "상세 장소 (예: 310관 B301호)", example = "310관 B301호") // 추가됨 + String detailedLocation, + @Schema(example = "2025-04-10T18:00") @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm") LocalDateTime startDateTime, diff --git a/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetPostForUserResponse.java b/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetPostForUserResponse.java index 98b39099..4571e8a4 100644 --- a/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetPostForUserResponse.java +++ b/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetPostForUserResponse.java @@ -22,6 +22,7 @@ public record GetPostForUserResponse( String title, String content, String place, + String detailedLocation, LocalDate startDate, LocalDate endDate, LocalDateTime startDateTime, diff --git a/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetPostResponse.java b/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetPostResponse.java index 76c9a213..e9624a33 100644 --- a/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetPostResponse.java +++ b/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetPostResponse.java @@ -23,6 +23,7 @@ public record GetPostResponse( String title, String content, String placeName, + String detailedLocation, LocalDate startDate, LocalDate endDate, LocalDateTime startDateTime, diff --git a/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java b/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java index 8b5c7c1b..c1480824 100644 --- a/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java +++ b/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java @@ -86,6 +86,7 @@ public GetPostResponse toGetPostResponse(StudentCouncilPost post, List i .title(post.getTitle()) .content(post.getContent()) .placeName(post.getPlace().getPlaceName()) + .detailedLocation(post.getDetailedLocation()) .thumbnailImageUrl(post.getThumbnailImageUrl()) .thumbnailIcon(post.getThumbnailIcon()) .images(images != null ? images : Collections.emptyList()); @@ -111,6 +112,7 @@ public GetPostForUserResponse toGetPostForUserResponse(StudentCouncilPost post, .title(post.getTitle()) .content(post.getContent()) .place(post.getPlace().getPlaceName()) + .detailedLocation(post.getDetailedLocation()) .thumbnailImageUrl(post.getThumbnailImageUrl()) .thumbnailIcon(post.getThumbnailIcon()) .isLiked(isLiked) @@ -152,6 +154,7 @@ public StudentCouncilPost createStudentCouncilPost(StudentCouncil writer, Place .title(dto.title()) .content(dto.content()) .place(place) + .detailedLocation(dto.detailedLocation()) .startDateTime(startDateTime) .endDateTime(endDateTime) .thumbnailImageUrl(dto.thumbnailImageUrl()) diff --git a/src/main/java/com/campus/campus/domain/councilpost/application/service/StudentCouncilPostService.java b/src/main/java/com/campus/campus/domain/councilpost/application/service/StudentCouncilPostService.java index 1efd1536..d91e749b 100644 --- a/src/main/java/com/campus/campus/domain/councilpost/application/service/StudentCouncilPostService.java +++ b/src/main/java/com/campus/campus/domain/councilpost/application/service/StudentCouncilPostService.java @@ -221,6 +221,7 @@ public GetPostResponse update(Long councilId, Long postId, PostRequest dto) { dto.title(), dto.content(), place, + dto.detailedLocation(), normalized.startDateTime(), normalized.endDateTime(), dto.thumbnailImageUrl(), diff --git a/src/main/java/com/campus/campus/domain/councilpost/domain/entity/StudentCouncilPost.java b/src/main/java/com/campus/campus/domain/councilpost/domain/entity/StudentCouncilPost.java index d0de71fd..0ce3fa0d 100644 --- a/src/main/java/com/campus/campus/domain/councilpost/domain/entity/StudentCouncilPost.java +++ b/src/main/java/com/campus/campus/domain/councilpost/domain/entity/StudentCouncilPost.java @@ -50,6 +50,9 @@ public class StudentCouncilPost extends BaseEntity { @JoinColumn(name = "place_id") private Place place; + @Column(name = "detailed_location") + private String detailedLocation; + private LocalDateTime startDateTime; private LocalDateTime endDateTime; @@ -62,6 +65,7 @@ public void update( String title, String content, Place place, + String detailedLocation, LocalDateTime startDateTime, LocalDateTime endDateTime, String thumbnailImageUrl, @@ -71,6 +75,7 @@ public void update( this.title = title; this.content = content; this.place = place; + this.detailedLocation = detailedLocation; this.startDateTime = startDateTime; this.endDateTime = endDateTime; this.category = category; diff --git a/src/main/java/com/campus/campus/domain/councilpost/presentation/StudentCouncilPostController.java b/src/main/java/com/campus/campus/domain/councilpost/presentation/StudentCouncilPostController.java index 3946f0d9..51e95235 100644 --- a/src/main/java/com/campus/campus/domain/councilpost/presentation/StudentCouncilPostController.java +++ b/src/main/java/com/campus/campus/domain/councilpost/presentation/StudentCouncilPostController.java @@ -92,6 +92,7 @@ public class StudentCouncilPostController { "https://maps.googleapis.com/maps/api/place/photo?maxWidth=800&photo_reference=example3" ] }, + "detailedLocation": "대운동장", "startDateTime": "2025-04-10T18:00", "thumbnailIcon": "EVENT", "imageUrls": [] From 0a0c0cf7bcd0d2d982717ab07a1f80bbf37f486f Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Mon, 12 Jan 2026 19:44:48 +0900 Subject: [PATCH 2/5] =?UTF-8?q?refactor:=20=EA=B4=80=EC=8B=AC=20=ED=95=99?= =?UTF-8?q?=EC=83=9D=ED=9A=8C=20=EA=B2=8C=EC=8B=9C=EA=B8=80=20=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20=EC=A1=B0=ED=9A=8C=20JsonInclude=20=EC=96=B4?= =?UTF-8?q?=EB=85=B8=ED=85=8C=EC=9D=B4=EC=85=98=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=EB=B0=8F=20detailedLocation=20=ED=95=84=EB=93=9C=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/dto/response/GetLikedPostResponse.java | 6 ++++++ .../application/mapper/StudentCouncilPostMapper.java | 1 + 2 files changed, 7 insertions(+) diff --git a/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetLikedPostResponse.java b/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetLikedPostResponse.java index 6bf1bd71..018e52f0 100644 --- a/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetLikedPostResponse.java +++ b/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetLikedPostResponse.java @@ -2,8 +2,11 @@ import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonInclude; + import io.swagger.v3.oas.annotations.media.Schema; +@JsonInclude(JsonInclude.Include.NON_NULL) public record GetLikedPostResponse( @Schema(description = "게시글 id", example = "1") Long postId, @@ -14,6 +17,9 @@ public record GetLikedPostResponse( @Schema(description = "게시글 장소", example = "투썸 플레이스") String place, + @Schema(description = "상세 장소", example = "가천관 301호") + String detailedLocation, + @Schema(description = "시간(끝나는 시간 or 행사날짜)", example = "2026-01-10T18:00:00") LocalDateTime dateTime, diff --git a/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java b/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java index c1480824..9fd091a3 100644 --- a/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java +++ b/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java @@ -141,6 +141,7 @@ public GetLikedPostResponse toGetLikedPostResponse(StudentCouncilPost post) { post.getId(), post.getTitle(), post.getPlace().getPlaceName(), + post.getDetailedLocation(), post.isEvent() ? post.getStartDateTime() : post.getEndDateTime(), post.getThumbnailImageUrl() ); From 8eb191724909eaada0f8150c8d7adb08571d4e7c Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Mon, 12 Jan 2026 19:54:01 +0900 Subject: [PATCH 3/5] =?UTF-8?q?refactor:=20=ED=95=99=EC=83=9D=ED=9A=8C=20?= =?UTF-8?q?=EC=A0=9C=ED=9C=B4/=ED=96=89=EC=82=AC=20=EB=AA=A9=EB=A1=9D=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20(=ED=95=99=EC=83=9D=ED=9A=8C=20=ED=99=88?= =?UTF-8?q?=ED=99=94=EB=A9=B4,=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=ED=95=9C=20?= =?UTF-8?q?=ED=95=99=EC=83=9D=ED=9A=8C=20=EC=9E=91=EC=84=B1=ED=95=9C=20?= =?UTF-8?q?=EA=B8=80=EB=A7=8C)=20=EC=9D=91=EB=8B=B5=20dto=20JsonInclude=20?= =?UTF-8?q?=EC=96=B4=EB=85=B8=ED=85=8C=EC=9D=B4=EC=85=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EB=B0=8F=20detailedLocation=20=ED=95=84=EB=93=9C?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/response/GetPostListForCouncilResponse.java | 5 +++++ .../application/mapper/StudentCouncilPostMapper.java | 1 + 2 files changed, 6 insertions(+) diff --git a/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetPostListForCouncilResponse.java b/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetPostListForCouncilResponse.java index 294333fd..fb18afa2 100644 --- a/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetPostListForCouncilResponse.java +++ b/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetPostListForCouncilResponse.java @@ -4,9 +4,11 @@ import com.campus.campus.domain.councilpost.domain.entity.PostCategory; import com.campus.campus.domain.councilpost.domain.entity.ThumbnailIcon; +import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.v3.oas.annotations.media.Schema; +@JsonInclude(JsonInclude.Include.NON_NULL) public record GetPostListForCouncilResponse( @Schema(description = "게시글 id", example = "1") Long postId, @@ -20,6 +22,9 @@ public record GetPostListForCouncilResponse( @Schema(description = "장소", example = "310관 1층") String place, + @Schema(description = "상세 장소", example = "가천관 301호") + String detailedLocation, + @Schema(description = "시간(끝나는 시간 or 행사날짜", example = "2026-01-10T18:00:00") LocalDateTime dateTime, diff --git a/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java b/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java index 9fd091a3..0a13fe34 100644 --- a/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java +++ b/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java @@ -49,6 +49,7 @@ public GetPostListForCouncilResponse toGetPostListForCouncilResponse(StudentCoun post.getCategory(), post.getTitle(), post.getPlace().getPlaceName(), + post.getDetailedLocation(), post.isEvent() ? post.getStartDateTime() : post.getEndDateTime(), post.getThumbnailImageUrl(), post.getThumbnailIcon() From c10ab9af1f716235c88f9019bbe17b15228231b9 Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Mon, 12 Jan 2026 19:57:01 +0900 Subject: [PATCH 4/5] =?UTF-8?q?refactor:=20=ED=95=99=EC=83=9D=ED=9A=8C=207?= =?UTF-8?q?2=EC=8B=9C=EA=B0=84=20=EC=9D=B4=EB=82=B4=20=ED=96=89=EC=82=AC?= =?UTF-8?q?=20=EC=A1=B0=ED=9A=8C=20=EC=9D=91=EB=8B=B5=20dto=20JsonInclude?= =?UTF-8?q?=20=EC=96=B4=EB=85=B8=ED=85=8C=EC=9D=B4=EC=85=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EB=B0=8F=20detailedLocation=20=ED=95=84=EB=93=9C?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/response/GetUpcomingEventListForCouncilResponse.java | 3 +++ .../application/mapper/StudentCouncilPostMapper.java | 1 + 2 files changed, 4 insertions(+) diff --git a/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetUpcomingEventListForCouncilResponse.java b/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetUpcomingEventListForCouncilResponse.java index cd62e6ec..d418e0cf 100644 --- a/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetUpcomingEventListForCouncilResponse.java +++ b/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/GetUpcomingEventListForCouncilResponse.java @@ -20,6 +20,9 @@ public record GetUpcomingEventListForCouncilResponse( @Schema(description = "장소", example = "310관 1층") String place, + @Schema(description = "상세 장소", example = "가천관 301호") + String detailedLocation, + @Schema(description = "시간(끝나는 시간 or 행사날짜", example = "2026-01-10T18:00:00") LocalDateTime dateTime, diff --git a/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java b/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java index 0a13fe34..4bfc7860 100644 --- a/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java +++ b/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java @@ -62,6 +62,7 @@ public GetUpcomingEventListForCouncilResponse toGetUpcomingEventListForCouncilRe post.getCategory(), post.getTitle(), post.getPlace().getPlaceName(), + post.getDetailedLocation(), post.getStartDateTime(), post.getThumbnailIcon() ); From 3cb0da2eed17a38ce0d402989a3a57445eb12968 Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Mon, 12 Jan 2026 20:00:01 +0900 Subject: [PATCH 5/5] =?UTF-8?q?refactor:=20PostListItemResponse=20JsonIncl?= =?UTF-8?q?ude=20=EC=96=B4=EB=85=B8=ED=85=8C=EC=9D=B4=EC=85=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EB=B0=8F=20detailedLocation=20=ED=95=84=EB=93=9C?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/dto/response/PostListItemResponse.java | 3 +++ .../application/mapper/StudentCouncilPostMapper.java | 5 ++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/PostListItemResponse.java b/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/PostListItemResponse.java index 585bef2d..bc6a4bb6 100644 --- a/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/PostListItemResponse.java +++ b/src/main/java/com/campus/campus/domain/councilpost/application/dto/response/PostListItemResponse.java @@ -4,12 +4,15 @@ import com.campus.campus.domain.councilpost.domain.entity.PostCategory; import com.campus.campus.domain.councilpost.domain.entity.ThumbnailIcon; +import com.fasterxml.jackson.annotation.JsonInclude; +@JsonInclude(JsonInclude.Include.NON_NULL) public record PostListItemResponse( Long id, PostCategory category, String title, String placeName, + String detailedLocation, LocalDateTime endDateTime, String thumbnailImageUrl, ThumbnailIcon thumbnailIcon, diff --git a/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java b/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java index 4bfc7860..5e1ca0c5 100644 --- a/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java +++ b/src/main/java/com/campus/campus/domain/councilpost/application/mapper/StudentCouncilPostMapper.java @@ -34,9 +34,8 @@ public PostListItemResponse toPostListItemResponse(StudentCouncilPost post, bool post.getCategory(), post.getTitle(), post.getPlace().getPlaceName(), - post.isEvent() - ? post.getStartDateTime() - : post.getEndDateTime(), + post.getDetailedLocation(), + post.isEvent() ? post.getStartDateTime() : post.getEndDateTime(), post.getThumbnailImageUrl(), post.getThumbnailIcon(), isLiked