def format_sleep_data(self, sleep_response: Dict) -> List[StandardPulseData]:
"""Map nested sleep data"""
results = []
sleep_data = sleep_response.get("sleep", {})
# Total sleep duration
if "total_seconds" in sleep_data:
results.append(StandardPulseData(
indicator=StandardIndicator.DAILY_SLEEP_DURATION,
value=str(sleep_data["total_seconds"] * 1000), # Convert to ms
start_time=sleep_data["start_time"],
end_time=sleep_data["end_time"]
))
# Sleep stages
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