Sincronizando Seus Dados

O Plantgotchi usa uma arquitetura offline-first. Seu celular e o armazenamento principal de dados, e a nuvem e uma camada de sincronizacao que mantem tudo acessivel entre dispositivos.

Como a Sincronizacao Funciona

Quando seu dispositivo esta online, o app sincroniza com o Turso — um banco de dados SQLite distribuido na nuvem. A sincronizacao acontece em duas direcoes:

  • Push — leituras de sensores e registros de cuidados sao enviados do seu celular para a nuvem.
  • Pull — perfis de plantas e recomendacoes de IA sao baixados para o seu celular.

O protocolo de sincronizacao usa a API HTTP pipeline do Turso, agrupando multiplas instrucoes SQL em uma unica requisicao para eficiencia.

Resolucao de Conflitos

O que acontece quando dois celulares registram dados para a mesma planta? O Plantgotchi lida com isso elegantemente:

  • Leituras de sensores — deduplicadas por uma restricao unica em (sensor_id, timestamp). Se dois celulares capturam a mesma leitura BLE, INSERT OR IGNORE mantem apenas uma copia.
  • Registros de cuidados — cada registro tem um UUID, entao entradas de diferentes celulares sao ambas preservadas (sem conflito).
  • Edicoes de plantas — o ultimo push vence. Se voce renomear uma planta em dois dispositivos, o nome sincronizado mais recentemente e mantido.

Modo Offline

Quando voce esta offline, o app funciona normalmente:

  • Leituras de sensores BLE continuam sendo capturadas e armazenadas localmente.
  • O motor de regras offline ainda gera alertas instantaneamente.
  • Acoes de cuidado sao registradas no banco de dados local.
  • Todas as alteracoes pendentes sao enfileiradas e sincronizadas automaticamente quando a conectividade retornar.

Os unicos recursos que requerem internet sao recomendacoes por IA (do Claude) e acesso ao seu jardim pelo painel web.

Frequencia de Sincronizacao

O app sincroniza automaticamente quando detecta uma conexao de rede. Voce tambem pode acionar uma sincronizacao manual puxando para baixo na tela do jardim. Recomendacoes por IA rodam em um ciclo de 6 horas quando online.