Pular para conteúdo

0005 — BIGSERIAL como PK nas tabelas bi_*

Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-06-11 · Decidido em: 2026-04-01

Contexto

A regra cross-project X-Adm para PK de tabelas bi_* tem como ideal UUID v7 DEFAULT uuidv7() (bom para geração distribuída e clientes móveis). Mas as bi_* deste projeto sincronizam via PowerSync, e a dúvida era se BIGSERIAL seria aceito.

Decisão

Usar BIGSERIAL em bi_faturamento e bi_movimento (e id TEXT = chave semântica em bi_configuracao). Confirmado em produção: PowerSync 1.20+ aceita BIGSERIAL na replicação.

Consequências

  • Simplicidade; não é débito técnico — é escolha consciente, documentada na regra cross-project do CLAUDE.md.
  • Difere do Onpetro (que usa uuidv7() com sync ativo) — divergência legítima por domínio; ambas as formas são aceitas pela regra.
  • A escrita é centralizada no ERP, então não há ganho prático de PK distribuída.

Alternativas consideradas

  • uuidv7() DEFAULT: ideal para geração distribuída/mobile, mas desnecessário aqui (o ERP é a única fonte de escrita). Descartado por não agregar.
  • Paridade forçada com o Onpetro: as divergências de PK entre os dois apps já são aceitas pela regra; não vale reescrever só por uniformidade.