[BE-33] ListCommunityPostsUseCase (신규, 모임 게시글 목록 인가, FR-2)

작업 내용 (설계 의도)

변경 사항

근거 TDD: 20260707-post-community-연동-tdd.md Detail Design “서비스 클래스”. ListCommunityPostsUseCase(신규, application/post/usecase)는 특정 모임의 게시글 목록을 인가 후 조회한다(전역 피드 아님, PRIVATE 멤버도 자기 모임 글을 봄):

  1. communityDomainService.getCommunity(communityId, requesterId) (FR-2 — 공개→통과/비공개 비멤버→403)
  2. postDomainService.search(criteria) — communityId 필터 + globalFeedOnly=false(global_listed 무시, 모임 전체). 종목 필터 선택. Post+CommunityDomainService 주입(R1 배선점, application 레이어).

롤백

신규 UseCase는 라우트 미등록으로 비활성.

의존

  • BE-25 (PostDomainService.search)

다이어그램

처리 흐름

sequenceDiagram
    participant U as ListCommunityPostsUseCase
    participant CDS as CommunityDomainService
    participant PDS as PostDomainService
    U->>CDS: getCommunity(communityId, requesterId)
    CDS-->>U: 공개 통과 / 비공개 비멤버 403
    U->>PDS: search(communityId 필터, globalFeedOnly=false)

테스트 케이스

  • PUBLIC 모임 게시글 목록은 비멤버도 조회된다
  • PRIVATE 모임 게시글 목록은 ACTIVE 멤버가 조회할 수 있다(private 글 포함)
  • PRIVATE 모임 게시글 목록을 비멤버가 조회 시 403
  • 게시글 0건 모임은 빈 페이지를 반환한다(에러 아님)
  • 종목 필터를 함께 지정하면 해당 모임+종목 게시글만 조회된다(AND)