[BE-24] Post 검색 조건 DTO 확장 (communityId·sportCategory·globalFeedOnly)
작업 내용 (설계 의도)
변경 사항
근거 TDD: 20260707-post-community-연동-tdd.md Detail Design “인터페이스 시그니처”.
PostSearchCriteria(domain/post/dto/PostSearchCriteria.kt)에 communityId: Long?·sportCategory: SportCategory?(공유 커널)·globalFeedOnly: Boolean 필드를 추가한다. PostCriteria(application/post/dto/PostCriteria.kt)에 동일 필드 + toSearchCriteria() 매핑을 확장한다(MAX_PAGE_SIZE=100 유지). globalFeedOnly=true는 전역 피드(BE-25/26에서 global_listed=true 강제), false는 모임 목록 조회(가시성 인가는 UseCase가 상위에서 담당). 종목/모임 필터는 독립 AND 결합(FR-6). Post.kt와 다른 파일이라 BE-23과 병렬.
롤백
필드 additive.
의존
- BE-20 (SportCategory in domain.common.vo)
다이어그램
클래스 의존
flowchart LR PostCriteria -->|toSearchCriteria| PostSearchCriteria PostSearchCriteria -->|communityId·sportCategory·globalFeedOnly| filter[검색 술어] PostSearchCriteria -.->|typed| SC[common.SportCategory]
테스트 케이스
- PostCriteria가 communityId·sportCategory·globalFeedOnly를 PostSearchCriteria로 매핑한다
- keyword blank는 기존대로 null로 정규화된다(하위호환)
- page size > 100 → 100으로 캡(기존 정책 유지)
- sportCategory·communityId 미지정(null) 시 필터 미적용 조건이 생성된다