def format_sleep_data(self, sleep_response: Dict) -> List[StandardPulseData]:
"""映射嵌套的睡眠数据"""
results = []
sleep_data = sleep_response.get("sleep", {})
# 总睡眠时长
if "total_seconds" in sleep_data:
results.append(StandardPulseData(
indicator=StandardIndicator.DAILY_SLEEP_DURATION,
value=str(sleep_data["total_seconds"] * 1000), # 转换为毫秒
start_time=sleep_data["start_time"],
end_time=sleep_data["end_time"]
))
# 睡眠阶段
stages = sleep_data.get("stages", {})
if "deep_seconds" in stages:
results.append(StandardPulseData(
indicator=StandardIndicator.DAILY_DEEP_SLEEP,
value=str(stages["deep_seconds"] * 1000),
start_time=sleep_data["start_time"],
end_time=sleep_data["end_time"]
))
return results