Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
7109f69
[FEAT] 이미지 저장·조회·교체 API 구현
99hyuk Aug 7, 2025
b0338b9
[FEAT] presignedURL 병렬 발급 로직 구현, 파일 형식 제한 삭제
99hyuk Aug 7, 2025
8d9f35b
[FIX] 리뷰 등록, 수정할 때 리뷰 고유 ID 반환하도록 수정
99hyuk Aug 7, 2025
b2c4524
[FIX] 리뷰 관련 로직에서 기존 이미지 관련 로직 전부 삭제
99hyuk Aug 7, 2025
ba4d43c
[FIX] 리뷰 조회할 때 이미지 테이블 조회해서 같이 반환하도록 로직 수정(기존 고유 이미지 단일 필드 -> 공통 이미지 …
99hyuk Aug 7, 2025
7293cf1
[FIX] 게스트하우스 수정할 때 id 반환하도록 수정(편의성)
99hyuk Aug 7, 2025
aeeae3f
[FIX] 게스트하우스 조회 시 이미지 테이블 참조하여 URL 반환하도록 수정(처음 등록된 이미지를 대표 이미지로 지정)
99hyuk Aug 7, 2025
78613ea
[FIX] Room 관련한 기존 이미지 필드 삭제 및, Room 생성 및 수정 시 고유 ID(PK) 반환하도록 수정
99hyuk Aug 7, 2025
1913bc3
[FIX] Room 조회 시 이미지 테이블에서 관련 이미지도 함께 조회되도록 로직 수정
99hyuk Aug 7, 2025
9fca162
[FIX] 예약 조회 시 이미지 테이블에서 관련 이미지도 함께 조회되도록 로직 수정
99hyuk Aug 7, 2025
a9ca694
[REFACT] 이미지 저장 API 스웨거 문서 구체화
99hyuk Aug 7, 2025
ba6de9b
[REFACT] 회원가입과 로그인 API 스웨거 문서 통합
99hyuk Aug 7, 2025
192fbd0
[REFACT] 예약, 객실 스웨거 태그 영어->한글로 수정
99hyuk Aug 7, 2025
5e1050f
[REFACT] 게스트하우스 부가서비스, 목표고객 태그 조회 API 스웨거 내 게스트하우스로 통합
99hyuk Aug 7, 2025
5fc0311
[REFACT] 홈 화면 조회 API 스웨거 설명 추가
99hyuk Aug 7, 2025
cc61fb2
[FEAT] S3 구조 관리 및 파일명 중복 막기 위해 파일 고유 키 생성 로직 추가, presiginedURL 발급 시 이…
99hyuk Aug 7, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions src/main/java/com/sumte/apiPayload/code/error/ImageErrorCode.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.sumte.apiPayload.code.error;

import org.springframework.http.HttpStatus;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

@Getter
@RequiredArgsConstructor
public enum ImageErrorCode implements ErrorCode {
IMAGE_ALREADY_EXISTS(HttpStatus.BAD_REQUEST, "IMAGE400", "해당 이미지가 이미 등록되어 있습니다."),

GUESTHOUSE_NOT_FOUND(HttpStatus.NOT_FOUND, "IMAGE404", "해당 게스트하우스를 찾을 수 없습니다."),

ROOM_NOT_FOUND(HttpStatus.NOT_FOUND, "IMAGE404", "해당 룸을 찾을 수 없습니다."),

REVIEW_NOT_FOUND(HttpStatus.NOT_FOUND, "IMAGE404", "해당 리뷰를 찾을 수 없습니다."),

INVALID_OWNER_TYPE(HttpStatus.BAD_REQUEST, "IMAGE400", "지원하지 않는 이미지 소유자 타입입니다.");

private final HttpStatus httpStatus;
private final String code;
private final String message;
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import com.sumte.apiPayload.ApiResponse;
import com.sumte.apiPayload.exception.annotation.CheckPage;
import com.sumte.apiPayload.exception.annotation.CheckPageSize;
import com.sumte.guesthouse.dto.GuesthouseDetailDTO;
import com.sumte.guesthouse.dto.GuesthousePreviewDTO;
import com.sumte.guesthouse.dto.GuesthouseRequestDTO;
import com.sumte.guesthouse.dto.GuesthouseResponseDTO;
Expand All @@ -35,7 +36,7 @@
import lombok.RequiredArgsConstructor;

@RestController
@Tag(name = "게스트 하우스 관련 api", description = "게스트하우스 생성/수정/조회/삭제 api 입니다.")
@Tag(name = "게스트 하우스 api", description = "게스트하우스 생성/수정/조회/삭제 api 입니다.")
@RequiredArgsConstructor
@RequestMapping("/guesthouse")
public class GuesthouseController {
Expand Down Expand Up @@ -69,11 +70,12 @@ public ApiResponse<Void> deleteGuesthouse(
@Parameters({
@Parameter(name = "guesthouseId", description = "게스트하우스 아이디를 넘겨주세요")
})
public ApiResponse<Void> updateGuesthouse(
public ResponseEntity<Long> updateGuesthouse(
@PathVariable(name = "guesthouseId") Long guesthouseId,
@RequestBody @Valid GuesthouseRequestDTO.Update dto) {
guesthouseCommandService.updateGuesthouse(guesthouseId, dto);
return ApiResponse.successWithNoData();

return ResponseEntity.ok(guesthouseId);
}

// @Operation(summary = "홈 화면 게스트하우스 목록 조회 (광고 우선)", description = "게스트하우스 목록을 보여줍니다")
Expand All @@ -85,6 +87,7 @@ public ApiResponse<Void> updateGuesthouse(
// }

@GetMapping("/home")
@Operation(summary = "홈 화면 조회", description = "홈 화면에 출력할 홈 화면 전용 게스트하우스 조회 API입니다.")
public ResponseEntity<ApiResponse<Slice<GuesthouseResponseDTO.HomeSummary>>> getGuesthousesForHome(
@ParameterObject
@PageableDefault(size = 10) Pageable pageable) {
Expand Down Expand Up @@ -112,10 +115,10 @@ public ApiResponse<Void> deactivateAdvertisement(@PathVariable Long guesthouseId
@Parameters({
@Parameter(name = "guesthouseId", description = "게스트하우스 아이디를 넘겨주세요.")
})
public ResponseEntity<ApiResponse<GuesthouseResponseDTO.GetHouseResponse>> getRoom(
public ResponseEntity<ApiResponse<GuesthouseDetailDTO>> getRoom(
@PathVariable Long guesthouseId
) {
GuesthouseResponseDTO.GetHouseResponse result = guesthouseQueryService.getHouseById(guesthouseId);
GuesthouseDetailDTO result = guesthouseQueryService.getHouseById(guesthouseId);
return ResponseEntity.ok(ApiResponse.success(result));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import lombok.RequiredArgsConstructor;

@RestController
@Tag(name = "부가서비스 조회 api", description = "부가서비스 리스트를 조회하는 api 입니다.")
@Tag(name = "게스트 하우스 api", description = "게스트하우스 생성/수정/조회/삭제 api 입니다.")
@RequiredArgsConstructor
@RequestMapping("/option")
public class OptionServiceController {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import lombok.RequiredArgsConstructor;

@RestController
@Tag(name = "이용대상 조회 api", description = "게스트하우스의 이용대상을 조회하는 api 입니다.")
@Tag(name = "게스트 하우스 api", description = "게스트하우스 생성/수정/조회/삭제 api 입니다.")
@RequiredArgsConstructor
@RequestMapping("/target")
public class TargetAudienceController {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ public GuesthouseResponseDTO.HomeSummary toHomeSummary(
.guestHouseId(guesthouse.getId())
.name(guesthouse.getName())
.addressRegion(guesthouse.getAddressRegion())
.imageUrl(guesthouse.getImageUrl())
.averageScore(avgScore)
.reviewCount(reviewCount)
.checkInTime(checkInTime)
Expand Down
28 changes: 28 additions & 0 deletions src/main/java/com/sumte/guesthouse/dto/GuesthouseDetailDTO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.sumte.guesthouse.dto;

import java.util.List;

import com.sumte.guesthouse.entity.AdType;
import com.sumte.room.dto.RoomResponseDTO;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class GuesthouseDetailDTO {
private Long id;
private String name;
private String addressRegion;
private String addressDetail;
private String information;
private AdType advertisement;
private List<String> optionServices;
private List<String> targetAudience;
private List<RoomResponseDTO.GetPreviewRoomByGuesthouseResponse> rooms;
private List<String> imageUrls; // 모든 이미지 URL 리스트
}
11 changes: 2 additions & 9 deletions src/main/java/com/sumte/guesthouse/dto/GuesthousePreviewDTO.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,9 @@ public class GuesthousePreviewDTO {
private Long id;
private String name;
private Double averageScore;
private Long reviewCount;
private Integer reviewCount;
private Long lowerPrice;
private String addressRegion;
private LocalTime checkinTime;

public void setAverageScore(Double averageScore) {
this.averageScore = averageScore;
}

public void setReviewCount(Long reviewCount) {
this.reviewCount = reviewCount;
}
private String imageUrl;
}
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ public static class GetHouseResponse {
List<String> optionServices;
List<String> targetAudience;
List<RoomResponseDTO.GetRoomResponse> rooms;

}

@Builder
Expand Down
7 changes: 0 additions & 7 deletions src/main/java/com/sumte/guesthouse/entity/Guesthouse.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,6 @@ public class Guesthouse extends BaseTimeEntity {
@Enumerated(EnumType.STRING)
private AdType advertisement;

private String imageUrl;

private String information;

@OneToMany(mappedBy = "guesthouse", cascade = CascadeType.ALL, orphanRemoval = true)
Expand All @@ -45,7 +43,6 @@ public static Guesthouse createByRegisterDTO(GuesthouseRequestDTO.Register dto)
guesthouse.name = dto.getName();
guesthouse.addressRegion = dto.getAddressRegion();
guesthouse.addressDetail = dto.getAddressDetail();
guesthouse.imageUrl = dto.getImageUrl();
guesthouse.information = dto.getInformation();
guesthouse.advertisement = AdType.NON_AD;
return guesthouse;
Expand All @@ -63,10 +60,6 @@ public void setAddressDetail(String addressDetail) {
this.addressDetail = addressDetail;
}

public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}

public void setInformation(String information) {
this.information = information;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,6 @@ public GuesthouseResponseDTO.Update updateGuesthouse(Long guesthouseId, Guesthou
if (dto.getAddressDetail() != null) {
guesthouse.setAddressDetail(dto.getAddressDetail());
}
if (dto.getImageUrl() != null) {
guesthouse.setImageUrl(dto.getImageUrl());
}
if (dto.getInformation() != null) {
guesthouse.setInformation(dto.getInformation());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Slice;

import com.sumte.guesthouse.dto.GuesthouseDetailDTO;
import com.sumte.guesthouse.dto.GuesthousePreviewDTO;
import com.sumte.guesthouse.dto.GuesthouseResponseDTO;
import com.sumte.guesthouse.dto.GuesthouseSearchRequestDTO;

public interface GuesthouseQueryService {
GuesthouseResponseDTO.GetHouseResponse getHouseById(Long id);
GuesthouseDetailDTO getHouseById(Long id);

Page<GuesthousePreviewDTO> getFilteredGuesthouse(GuesthouseSearchRequestDTO dto, Pageable pageable);

Expand Down
Loading