46 lines
1.8 KiB
Python
46 lines
1.8 KiB
Python
"""
|
|
HealthSync AI 미션 추천 응답 DTO
|
|
"""
|
|
from pydantic import BaseModel, Field
|
|
from typing import List
|
|
|
|
|
|
class RecommendedMission(BaseModel):
|
|
"""추천 미션 개별 DTO"""
|
|
title: str = Field(..., description="미션 제목")
|
|
daily_target_count: int = Field(..., ge=1, le=5, description="일일 목표 횟수 (1-5)")
|
|
reason: str = Field(..., description="추천 이유")
|
|
|
|
class Config:
|
|
json_schema_extra = {
|
|
"example": {
|
|
"title": "하루 30분 이상 걷기",
|
|
"daily_target_count": 1,
|
|
"reason": "유산소 운동을 통해 심혈관 건강을 개선하고 체중 관리에 도움이 됩니다."
|
|
}
|
|
}
|
|
|
|
|
|
class MissionRecommendationResponse(BaseModel):
|
|
"""미션 추천 응답 DTO"""
|
|
missions: List[RecommendedMission] = Field(..., description="추천 미션 목록")
|
|
|
|
class Config:
|
|
json_schema_extra = {
|
|
"example": {
|
|
"missions": [
|
|
{
|
|
"mission_id": "mission_001",
|
|
"title": "하루 30분 이상 걷기",
|
|
"daily_target_count": 1,
|
|
"reason": "혈압이 높고 체중이 증가한 상태로, 유산소 운동을 통해 심혈관 건강을 개선하고 체중 관리에 도움이 됩니다."
|
|
},
|
|
{
|
|
"mission_id": "mission_002",
|
|
"title": "물 2컵씩 마시기",
|
|
"daily_target_count": 4,
|
|
"reason": "충분한 수분 섭취로 혈액 순환을 개선하고 신진대사를 활성화하여 전반적인 건강 상태를 향상시킵니다."
|
|
}
|
|
]
|
|
}
|
|
} |