[일괄다운로드 PR4] Controller + Routes 비동기 전환

ID: 479ab05f-ec18-41f7-a8d6-9af6789b005a

높음 리뷰

## 설명
handle_bulk_download를 비동기로 전환하고 상태 조회/파일 다운로드 엔드포인트 추가.

### Controller 변경 (workspaces/members_controller.rb)
- `handle_bulk_download`: BulkReportDownload.create! + Job enqueue + redirect with notice
- 중복 방지: 같은 workspace에 pending/processing 있으면 거부
- 새 액션 `bulk_download_status`: JSON (status, processed_count, member_count, download_url)
- 새 액션 `bulk_download_file`: Active Storage redirect (workspace 소속 + 요청자 확인)

### Routes 추가
```ruby
collection do
get :bulk_download_status
get :bulk_download_file
end
```

### TDD
- handle_bulk_download: 레코드 생성 + Job enqueue + redirect
- bulk_download_status: 각 status별 JSON 응답
- bulk_download_file: completed면 redirect, 아니면 404
- 인가: admin/leader만

### 참고 패턴
- `diagnoses#ai_analysis_status`: JSON 폴링 엔드포인트

## 의존성
PR1, PR2 완료 후

## 완료 기준
- [ ] 비동기 요청 → 폴링 → 다운로드 플로우 테스트 통과
- [ ] 중복 요청 거부 테스트 통과
- [ ] 인가 테스트 통과

첨부 이미지

이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)

JPEG, PNG, GIF, WebP / 최대 10MB

담당자: 팀리드
생성일: 2026년 03월 30일 00:47

활동 로그

  • 팀리드 상태 변경: 진행 중 → 리뷰

    2026년 03월 30일 01:39:52

  • 팀리드 티켓 클레임 완료

    2026년 03월 30일 01:34:45

  • 팀리드 상태 변경: 할 일 → 백로그

    2026년 03월 30일 00:48:06