Skip to content

Conversation

MEOHIN
Copy link
Collaborator

@MEOHIN MEOHIN commented Sep 19, 2025

📢 기능 설명

나만의 bar(킵) 추가/재추가 기능을 구현했습니다.

연결된 issue

close #30



🩷 Approve 하기 전 확인해주세요!

  • MyBarRepository에서 엔티티의 PK 필드명(cocktailId)을 생략했으나, 명확한 필드 경로(Cocktail_CocktailId)를 명시했습니다.

✅ 체크리스트

  • PR 제목 규칙 잘 지켰는가?
  • 추가/수정사항을 설명하였는가?
  • 이슈넘버를 적었는가?
  • Approve 하기 전 확인 사항 체크했는가?

- `keptAt`은 칵테일이 마지막으로 킵된 시점을 저장하며, 목록 정렬 기준으로 활용될 예정
기존의 `createdAt` 필드는 엔티티가 생성된 시점만을 나타내므로,
'킵' 해제 후 다시 '킵'하는 경우 목록의 최상단에 재배치되게 하려면 최신 '킵' 시간을 추적할 수 있는 별도의 필드가 필요했습니다.
이를 위해 `keptAt` 필드를 추가하여 최신 킵 시간을 관리하고, 이를 목록 정렬의 기준으로 사용하도록 개선했습니다.
- `findByUserIdAndStatusOrderByIdDesc` 쿼리 메소드의 정렬 기준을 `KeptAt`으로 변경
  - 최근에 킵한 칵테일이 목록 상단에 오도록 `keptAt`을 기준으로 내림차순 정렬하고, 동일한 시간일 경우 `id`로 보조 정렬
- `countByUserIdAndStatus` 쿼리 메소드의 매개변수명을 `user_Id`로 통일
- 칵테일 킵 상태 확인(`existsByUser_IdAndCocktail_IdAndStatus`)을 위한 쿼리 메소드 추가
- 복원/재킵(`findByUser_IdAndCocktail_Id`)을 위한 쿼리 메소드 추가
- `keep` 메서드를 추가하여 칵테일을 킵하거나 재킵하는 로직 구현
- 기존 목록 조회 메서드(`getMyBar`)의 쿼리 정렬 기준을 `KeptAt`으로 변경
- `UserRepository`와 `CocktailRepository`를 추가하여 엔티티 참조에 활용
- `POST /me/bar/{cocktailId}/keep` 엔드포인트 추가
- URL `@PathVariable`로 칵테일 ID를 받고, `@AuthenticationPrincipal`로 사용자 ID를 획득
- `MyBarService`의 `keep` 메서드를 호출하여 킵 기능 처리
- 성공 시 HTTP 201 상태 코드와 "kept" 메시지 반환
-`@ManyToOne` 관계에서 연관 엔티티의 ID 필드를 직접 참조할 때의 **JPA 규칙**을 따르기 위함입니다. 이전 코드에서는 `Cocktail` 엔티티의 PK 필드명(`cocktailId`)을 생략했으나, 명확한 필드 경로(`Cocktail_CocktailId`)를 명시하여 코드의 가독성과 일관성을 높였습니다.
@github-actions github-actions bot added the feat 새로운 기능 추가 label Sep 19, 2025
@MEOHIN MEOHIN merged commit b2b9aff into dev Sep 22, 2025
1 check passed
@MEOHIN MEOHIN deleted the feat#30 branch September 22, 2025 00:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feat 새로운 기능 추가
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[feat] 나만의 bar(킵) 추가 기능 구현
2 participants