## 어떤 기능인가요? > 운영진이 설정한 학생회비 납부자 전용·모집 방식·정원을 학생 앱 행사 상세로 내려주고, 납부자 전용 행사는 미납자의 신청을 서버에서 막습니다. 프론트는 이 값으로 행사 상세의 "대상"(`소프트웨어융합대학 학생` 고정 · `과학생회비 납부자` · `선착순 N명`)을 그리고, 미납자에게는 신청 버튼을 비활성화합니다. 지금은 행사 상세 응답(`EventDetail`)에 이 세 값이 모두 없습니다. 신청 API도 납부 여부를 보지 않아서, 화면에서 버튼만 막으면 API를 직접 호출하는 신청은 막지 못합니다. ## 📝 작업 상세 내용 - [ ] 행사 상세 응답(`GET /v1/app/events/{eventId}`)에 `feePaidOnly`·`recruitType`·`capacity` 추가 — 상시 모집이면 `capacity`는 `null`(`RecruitPolicy.capacityLimit()`) - [ ] 행사 신청(`POST /v1/app/events/{eventId}/applications`)에서 납부자 전용 행사면 신청자의 학생회비 납부 여부를 확인하고, 미납이면 새 에러 코드로 거부 - 행사(event)와 학생회비(welfare)는 도메인이 달라 `api:app-api`의 UseCase에서 두 서비스를 조합 - [ ] #138의 공개 차단(`EVENT_UNSUPPORTED_OPTION`)에서 납부자 전용 조건 제거 — 기타 선택지 조건은 학생 앱이 기타 입력을 지원할 때까지 유지 ## 📁 참고 자료 (선택) - 학생 본인의 납부 상태는 기존 `GET /v1/app/fee/me`로 조회할 수 있음 - 관련 PR: #136(운영진 행사 등록·수정, `feePaidOnly` 저장), #138(공개 전환 차단) - 대상 문구는 서버가 만들지 않고 값만 내려주며, 문구는 프론트가 조합
Activity