fixes graphics

This commit is contained in:
2026-07-01 05:04:47 +00:00
parent 1313a12a20
commit 3e48b3a41c
9 changed files with 543 additions and 50 deletions
+27
View File
@@ -52,6 +52,17 @@ class WeightCreate(BaseModel):
recorded_at: str | None = None
class BodyMetricUpdate(BaseModel):
weight_kg: float | None = Field(default=None, gt=0)
body_fat_pct: float | None = Field(default=None, ge=0, le=100)
chest_cm: float | None = Field(default=None, ge=0)
waist_cm: float | None = Field(default=None, ge=0)
neck_cm: float | None = Field(default=None, ge=0)
hip_cm: float | None = Field(default=None, ge=0)
notes: str | None = None
recorded_at: str | None = None
class BodyCompositionCalc(BaseModel):
weight_kg: float | None = None
height_cm: float | None = None
@@ -341,6 +352,22 @@ def list_metrics(
return FitnessService(db, user.id).list_body_metrics(limit=limit)
@router.patch("/fitness/body-metrics/{metric_id}")
def update_body_metric(
metric_id: int,
payload: BodyMetricUpdate,
db: Session = Depends(get_db),
user: User = Depends(get_current_user),
) -> dict[str, Any]:
updates = payload.model_dump(exclude_unset=True)
if not updates:
raise HTTPException(status_code=400, detail="No fields to update")
result = FitnessService(db, user.id).update_body_metric(metric_id, updates)
if not result:
raise HTTPException(status_code=404, detail="Not found")
return result
@router.patch("/fitness/meals/{log_id}")
def update_meal(
log_id: int,