MVP 1 - Metas - Tecnico¶
Backend¶
Rotas REST:
GET /goalsPOST /goalsGET /goals/{goal_id}PUT /goals/{goal_id}DELETE /goals/{goal_id}GET /goals/{goal_id}/planPOST /goals/simulate
Arquivos-base:
/tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-api/app/controllers/goal/routes.py/tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-api/app/controllers/goal/resources.py
Modelo¶
/tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-api/app/models/goal.py/tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-api/app/schemas/goal_schema.py
Campos:
titledescriptioncategorytarget_amountcurrent_amountprioritytarget_datestatus
Regra de planejamento¶
Application service:
/tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-api/app/application/services/goal_application_service.py
Servico de planejamento:
/tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-api/app/services/goal_planning_service.py
Logica relevante:
- calcula valor restante
- calcula capacidade com base em renda menos despesas
- define aporte projetado
- estima meses para atingir a meta
- classifica saude da meta
- gera recomendacoes
Saudes possiveis na pratica:
completedon_trackoff_trackat_risk
GraphQL¶
Metas tambem estao expostas em GraphQL:
/tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-api/app/graphql/queries/goal.py/tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-api/app/graphql/mutations/goal.py
Frontends¶
No estado atual do codigo:
- web nao tem pagina de metas
- app nao tem tela de metas
Ou seja: metas ja sao um modulo de dominio e API, mas ainda nao uma experiencia completa de produto em todos os canais.
Contrato esperado entre canais¶
Para metas, o contrato entre web/app e API deve seguir estes principios:
- API como fonte canonica de dados persistidos;
- valores monetarios em
BRLserializados como string decimal; - timestamps em UTC (
ISO-8601); resource_versionem update/delete para controle otimista;idempotency_keynas operacoes mutaveis;- leitura incremental com
updated_since,limit,cursore aplicacao dedeleted_at_utcpara exclusao logica.