리포트
목적
report-svc는 백엔드 데이터로 학생별 시험 리포트를 만들고, ReportLab으로 단일 페이지 PDF를 렌더링합니다. 주요 운영 경로는 RabbitMQ를 통한 비동기 방식이지만, 단일 리포트 생성을 위한 동기 대체 라우트도 유지합니다.
공유 워커 규칙은 워커 개요를 참조하세요.
소스 경로
| 경로 | 역할 |
|---|---|
lumie-worker/services/report/main.py | FastAPI 앱, 수명주기, health 라우트, 동기 대체 라우트 |
lumie-worker/services/report/src/schema.py | MQ 명령 및 콜백 페이로드 모델 |
lumie-worker/services/report/src/usecase.py | 리포트 생성 오케스트레이션 |
lumie-worker/services/report/src/mq/consumer.py | RabbitMQ 컨슈머와 콜백 페이로드 빌더 |
lumie-worker/services/report/src/adapters/reportlab_renderer.py | ReportLab PDF 렌더링 |
lumie-worker/services/report/src/domain/report_data.py | 타입이 지정된 리포트 데이터 모델 |
lumie-worker/services/report/src/adapters/exam_api.py | 백엔드 시험, 결과, 순위, 통계 클라이언트 |
lumie-worker/services/report/src/adapters/student_api.py | 백엔드 학생 프로필 클라이언트 |
lumie-worker/contracts/mq-schemas-v1.yaml | 수동 유지 report MQ 계약 참고 자료 |