Skip to content

Commit 3f87d36

Browse files
committed
feat(party): 파티,파티원 레포지토리 추가
1 parent 3de0b8b commit 3f87d36

File tree

3 files changed

+40
-1
lines changed

3 files changed

+40
-1
lines changed

src/main/java/com/back/matchduo/domain/party/entity/PartyStatus.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22

33
public enum PartyStatus {
44
ACTIVE, // 모집완료 시
5-
CLOSED // 모집중 , 게임완료일 시
5+
CLOSED // 모집중 , 게임완료(수동, 6시간 자동 포함)
66
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.back.matchduo.domain.party.repository;
2+
3+
import com.back.matchduo.domain.party.entity.PartyMember;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
6+
import java.util.List;
7+
import java.util.Optional;
8+
9+
public interface PartyMemberRepository extends JpaRepository<PartyMember, Long> {
10+
11+
// 1. 특정 파티의 멤버 목록 조회 (가입된 상태만 가져오거나, 전체 다 가져오거나)
12+
// 용도: GET /api/v1/parties/{partyId}/members (파티원 목록 보여주기)
13+
List<PartyMember> findByPartyId(Long partyId);
14+
15+
// 2. 내가 참여한 파티 목록 조회
16+
// 용도: GET /api/v1/users/me/parties (내 파티 목록)
17+
List<PartyMember> findByUserId(Long userId);
18+
19+
// 3. 이미 참여했는지 확인 (중복 참여 방지)
20+
// 용도: 파티 참여 신청 시 검증 로직 (Validation)
21+
boolean existsByPartyIdAndUserId(Long partyId, Long userId);
22+
23+
// 4. 특정 파티에서 내 멤버 정보 찾기
24+
// 용도: 탈퇴하거나 강퇴할 때 내 멤버 ID를 찾기 위해 사용
25+
Optional<PartyMember> findByPartyIdAndUserId(Long partyId, Long userId);
26+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,20 @@
11
package com.back.matchduo.domain.party.repository;
22

33
import com.back.matchduo.domain.party.entity.Party;
4+
import com.back.matchduo.domain.party.entity.PartyStatus;
45
import org.springframework.data.jpa.repository.JpaRepository;
56

7+
import java.time.LocalDateTime;
8+
import java.util.List;
9+
import java.util.Optional;
10+
611
public interface PartyRepository extends JpaRepository<Party, Long> {
12+
13+
// 1. 모집글 ID로 파티 조회
14+
// 용도: GET /api/v1/posts/{postId}/party (모집글 눌렀을 때 파티 정보 띄우기)
15+
Optional<Party> findByPostId(Long postId);
16+
17+
// 2. 만료 시간이 지났고, 상태가 ACTIVE인 파티 조회
18+
// 용도: 스케줄러가 6시간 지난 파티를 찾아서 자동으로 닫을 때 사용
19+
List<Party> findByStatusAndExpiresAtBefore(PartyStatus status, LocalDateTime now);
720
}

0 commit comments

Comments
 (0)