백로그
0할 일
0진행 중
0리뷰
0완료 (전체)
2기도 동역자 시스템 (PrayerPartner + 검색/요청/수락)
## 목표 PrayerPartner 모델을 생성하고 동역자 검색, 요청 보내기, 수락/거절, 동역자 기도제목 공유 기능 구현 ## 모델 ### PrayerPartnership (중간 테이블) - requester_id: UUID FK → users (요청 보낸 사람) - receiver_id: UUID FK → users (요청 받은 사람) - status: integer enum (pending: 0, accepted: 1, rejected: 2) - INDEX: (requester_id, receiver_id) UNIQUE - 자기 자신 요청 방지: validate requester != receiver ## 컨트롤러 ### PrayerPartnersController - index: 내 동역자 목록 (accepted) + 받은 요청 (pending) - search: 동역자 검색 (params[:q] → email/nickname LIKE) - create: 동역자 요청 보내기 (requester=current_user, receiver=params[:user_id]) - accept: 요청 수락 (status → accepted) - reject: 요청 거절 (status → rejected) - destroy: 동역자 관계 삭제 - partner_prayers: 특정 동역자의 공개 기도제목 조회 ## 뷰 - index: 동역자 목록 + 받은 요청 + 검색 - _partner_card: 동역자 카드 (아바타, 닉네임, 상태) - _request_card: 요청 카드 (수락/거절 버튼) - partner_prayers: 동역자 기도제목 목록 ## 파일 담당 - 수정 가능: app/models/prayer_partnership.rb, app/models/user.rb (has_many 추가), db/migrate/*, app/controllers/prayer_partners_controller.rb, app/views/prayer_partners/*, test/* - 수정 금지: config/routes.rb (social-dev가 관리) ## 테스트 - 모델: PrayerPartnership validations, self-request 방지 - 컨트롤러: index, search, create, accept, reject, destroy, partner_prayers
공유 묵상 + 랭킹 + routes.rb 관리
## 목표 세션 내 공유 묵상 조회, 멤버 관리, 통독/묵상 랭킹 구현 + routes.rb 통합 관리 ## routes.rb 관리 (최우선!) 기존 라우트 아래, `# Static pages` 주석 위에 추가: ```ruby # Prayer Partners (동역자) resources :prayer_partners, only: [:index, :create, :destroy] do collection do get :search end member do post :accept post :reject get :prayers end end # Social (공유 묵상/랭킹) namespace :qt do resources :sessions do member do get :shared_meditations get :members get :rankings end end end ``` 주의: 기존 qt namespace 안에 sessions 라우트가 이미 있으므로, 새 member 라우트를 기존 block에 추가해야 합니다. ## 컨트롤러 ### Qt::SharedMeditationsController (또는 sessions 확장) - shared_meditations: 같은 세션 멤버의 공개 묵상 목록 (is_personal_meditation_shared == true) - members: 세션 멤버 목록 + 각 멤버의 진행 상황 - rankings: 통독/묵상/공유 순위 (전체/월별) ## 뷰 - qt/sessions/shared_meditations: 공유 묵상 카드 목록 - qt/sessions/members: 멤버 목록 + 진행 현황 - qt/sessions/rankings: 랭킹 테이블 ## 파일 담당 - 수정 가능: config/routes.rb, app/controllers/qt/sessions_controller.rb (액션 추가), app/views/qt/sessions/*, test/* - 수정 금지: app/models/prayer_partnership.rb, app/controllers/prayer_partners_controller.rb ## 테스트 - 컨트롤러: shared_meditations, members, rankings - 랭킹 계산 정확성 검증