fix: sleep quality calculation using wrong key (stage vs phase)
BUG: sleep_avg_quality showed 0% despite valid sleep data
ROOT CAUSE: sleep_segments use 'phase' key, not 'stage'
FIX: Changed s.get('stage') to s.get('phase') in get_sleep_avg_quality()
version: 9.5.1 (bugfix)
module: prompts 2.0.1
This commit is contained in:
parent
ae6bd0d865
commit
7daa2e40c7
|
|
@ -347,8 +347,8 @@ def get_sleep_avg_quality(profile_id: str, days: int = 7) -> str:
|
||||||
for row in rows:
|
for row in rows:
|
||||||
segments = row['sleep_segments']
|
segments = row['sleep_segments']
|
||||||
if segments:
|
if segments:
|
||||||
# Note: stages are stored lowercase (deep, rem, light, awake)
|
# Note: segments use 'phase' key (not 'stage'), stored lowercase (deep, rem, light, awake)
|
||||||
deep_rem_min = sum(s.get('duration_min', 0) for s in segments if s.get('stage') in ['deep', 'rem'])
|
deep_rem_min = sum(s.get('duration_min', 0) for s in segments if s.get('phase') in ['deep', 'rem'])
|
||||||
total_min = sum(s.get('duration_min', 0) for s in segments)
|
total_min = sum(s.get('duration_min', 0) for s in segments)
|
||||||
if total_min > 0:
|
if total_min > 0:
|
||||||
quality_pct = (deep_rem_min / total_min) * 100
|
quality_pct = (deep_rem_min / total_min) * 100
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user