Saltar al contenido principal

Modelo de datos

Moveat usa PostgreSQL como fuente de verdad del producto. El esquema está normalizado por defecto. Los summaries derivados se usan cuando mejoran performance o preservan snapshots históricos.

Áreas principales

ÁreaTablas
Identidadusers, auth accounts, user channels.
Setup fitnessuser profiles, user goals, nutrition settings.
Nutriciónmeal entries, meal entry items, daily summaries.
Entrenamientoexercises, exercise media, workout sessions, workout exercises, workout sets.
Progresoweight logs.
Coachingcoaching profile/context.

Por qué separar profile, goals y nutrition settings

Representan conceptos distintos:
  • Profile describe baseline físico.
  • Goals describe objetivo y supuestos de actividad.
  • Nutrition settings describe targets de calorías/macros.

Daily summaries

Son rollups derivados para dashboards e historial estable. Deben poder reconstruirse desde meal entries.

Idempotencia

Writes originados por Agent deben usar idempotency keys para evitar duplicados ante retries de webhooks.

Unit system

La DB guarda valores métricos canónicos. Las APIs responden valores de display según la preferencia del usuario.