Skip to main content

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

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.