DailyContentType
일일 콘텐츠 API에서 사용되는 콘텐츠 타입을 정의하는 열거형입니다.
값 목록
| 값 | 설명 |
|---|---|
LESSON | 레슨 콘텐츠 - 일반 레슨(1-45번) 또는 최종 레슨(46번)을 제공합니다. lessonLabel 필드에 해당 레슨의 라벨이 포함됩니다. 사용자는 이 라벨을 통해 번들에서 실제 레슨 콘텐츠를 조회할 수 있습니다. |
QUIZ | 퀴즈 콘텐츠 - 모든 일반 레슨 완료 후 제공되는 복습 퀴즈입니다. quizId 필드에 해당 퀴즈의 ID가 포함됩니다. 사용자는 이 ID를 통해 번들에서 실제 퀴즈 콘텐츠를 조회할 수 있습니다. |
BOTH | 레슨과 퀴즈 모두 제공 - 특정 조건에서 레슨과 퀴즈를 동시에 제공할 때 사용됩니다. (현재 일일 콘텐츠 API에서는 사용되지 않음) |
NONE | 제공할 콘텐츠 없음 - 치료 기간 초과, 시스템 오류, 또는 특정 조건 미충족 시 반환됩니다. 이 경우 lessonLabel과 quizId 모두 undefined입니다. |
BUNDLE_UPDATE_REQUIRED | 번들 업데이트 필요 - 클라이언트의 번들 버전이 서버의 최신 버전과 다를 때 반환됩니다. 클라이언트는 새로운 번들을 다운로드해야 합니다. |
사용 예시
일일 콘텐츠 API 응답에서의 사용
// 레슨 제공 시
{
"bundleId": "bundle_learning_2024_v1",
"currentDayIndex": 7,
"contentType": "LESSON",
"lessonLabel": 7
}
// 퀴즈 제공 시
{
"bundleId": "bundle_learning_2024_v1",
"currentDayIndex": 50,
"contentType": "QUIZ",
"quizId": "quiz_001"
}
// 콘텐츠 없음
{
"bundleId": "bundle_learning_2024_v1",
"currentDayIndex": 48,
"contentType": "NONE"
}
비즈니스 로직
콘텐츠 결정 우선순위
- LESSON: 치료 1-45일차 또는 90일차(최종 레슨), 또는 46-89일차에 미완료 레슨이 있는 경우
- QUIZ: 모든 일반 레슨 완료 후 46-89일차
- NONE: 제공할 콘텐츠가 없는 경우
- BUNDLE_UPDATE_REQUIRED: 번들 버전 불일치 시
치료 기간별 콘텐츠 타입
- 1-45일차: 주로
LESSON타입 (일반 레슨) - 46-89일차:
QUIZ타입 (모든 일반 레슨 완료 시) 또는 미완료LESSON타입 - 90일차: 최종
LESSON타입 (lessonLabel: 46) - 기타:
NONE또는BUNDLE_UPDATE_REQUIRED타입
관련 API
파일 위치
libs/shared/contracts-learning/src/lib/enums/daily-content-type.enum.ts