- Criadas APIs para Health (métricas de saúde) * Registrar peso, altura, % gordura, medidas * Histórico completo de medições * Estatísticas e resumo - Criadas APIs para Tasks (tarefas) * Criar, editar e deletar tarefas * Filtros por status e data * Estatísticas detalhadas * Prioridades (baixa, média, alta) - Frontend implementado: * Página Health.tsx - registro de métricas * Página Tasks.tsx - gerenciamento de tarefas * Página Progress.tsx - visualização de progresso * Dashboard integrado com estatísticas reais - Schemas e modelos atualizados - Todas as funcionalidades testadas e operacionais
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
from pydantic import BaseModel
|
|
from typing import Optional
|
|
from datetime import date, time
|
|
from decimal import Decimal
|
|
import uuid
|
|
|
|
class HealthMetricCreate(BaseModel):
|
|
measurement_date: date
|
|
measurement_time: Optional[time] = None
|
|
weight: Optional[Decimal] = None
|
|
height: Optional[Decimal] = None
|
|
body_fat_percentage: Optional[Decimal] = None
|
|
muscle_mass: Optional[Decimal] = None
|
|
waist: Optional[Decimal] = None
|
|
chest: Optional[Decimal] = None
|
|
hips: Optional[Decimal] = None
|
|
notes: Optional[str] = None
|
|
|
|
class HealthMetricResponse(BaseModel):
|
|
id: uuid.UUID
|
|
user_id: uuid.UUID
|
|
measurement_date: date
|
|
measurement_time: Optional[time]
|
|
weight: Optional[Decimal]
|
|
height: Optional[Decimal]
|
|
body_fat_percentage: Optional[Decimal]
|
|
muscle_mass: Optional[Decimal]
|
|
waist: Optional[Decimal]
|
|
chest: Optional[Decimal]
|
|
hips: Optional[Decimal]
|
|
notes: Optional[str]
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
class HealthMetricUpdate(BaseModel):
|
|
measurement_date: Optional[date] = None
|
|
measurement_time: Optional[time] = None
|
|
weight: Optional[Decimal] = None
|
|
height: Optional[Decimal] = None
|
|
body_fat_percentage: Optional[Decimal] = None
|
|
muscle_mass: Optional[Decimal] = None
|
|
waist: Optional[Decimal] = None
|
|
chest: Optional[Decimal] = None
|
|
hips: Optional[Decimal] = None
|
|
notes: Optional[str] = None
|
|
|