FastInBox | Dados e persistencia

Esquema de Banco de Dados

Versao: 1.0 estrutural | Objetivo: baseline relacional para migracao da persistencia local

Documento tecnico de modelagem com entidades, cardinalidade, integridade e diretrizes de indexacao para suportar o fluxo de pedidos white label da plataforma.

1. Premissas de modelagem

2. Entidades principais

TabelaObjetivoChave primaria
usersIdentidade e autorizacaouser_id (UUID)
clinicsDados de marca e operacao da clinicaclinic_id (UUID)
patientsCadastro de pacientepatient_id (UUID)
ordersCabecalho transacional do pedidoorder_id (UUID)
order_itemsItens individuais do pedidoorder_item_id (UUID)
paymentsEventos de pagamento e conciliacaopayment_id (UUID)
production_eventsHistorico de status operacionalproduction_event_id (UUID)

3. Relacionamentos

A relacao orders -> production_events garante trilha temporal completa do ciclo operacional.

4. Regras de integridade

RegraImplementacao sugeridaMotivo
Codigo de pedido unicoUNIQUE (order_code)Evitar colisao no acesso do paciente
Pagamento valido para producaoConstraint de transicao de statusBloquear operacao sem autorizacao
Status coerenteEnum + validacao de transicaoEvitar salto de etapa invalido
Exclusao protegidaSoft delete ou restricao referencialPreservar historico de auditoria

5. Indexacao recomendada

A estrategia de indice prioriza consultas de tela e governanca, mantendo equilibrio entre leitura rapida e custo de escrita.

6. Politica de evolucao de schema

  1. Versionar migracoes com rollback explicito.
  2. Evitar mudancas destrutivas sem janela de compatibilidade.
  3. Formalizar dicionario de dados com semantica de campos.
  4. Adicionar trilhas de auditoria em tabelas sensiveis.

Essa abordagem reduz risco de quebra em sprint e facilita reproducao de ambiente em avaliacao tecnica.

7. Dicionario de campos criticos

Tabela.CampoTipo sugeridoRegraObservacao
users.roleENUMNOT NULLRestringe acesso por perfil.
patients.restrictionsTEXTNULL permitidoRestrições alimentares para montagem de item.
orders.order_codeVARCHARUNIQUE NOT NULLReferencia usada na jornada do paciente.
orders.statusENUMNOT NULLTransicao controlada por regra de negocio.
payments.payment_statusENUMNOT NULLSomente aprovado libera fluxo de producao.
production_events.created_atTIMESTAMPNOT NULLBase para timeline e auditoria.

8. Backup, restauracao e auditoria

Em evolucao para producao comercial, recomenda-se acoplar trilha de auditoria com politica de retencao e plano de resposta a incidentes.

9. Consultas criticas orientadas ao negocio

ConsultaTabelas envolvidasFinalidade
Buscar pedido por codigoorders, patients, order_itemsCarregar a jornada do paciente sem ambiguidade
Listar fila de producaoorders, payments, production_eventsExibir apenas pedidos pagos e seu estado atual
Conciliar pagamento e pedidoorders, paymentsGarantir que somente transacao aprovada libera producao
Acompanhar lead time operacionalorders, production_eventsMedir tempo entre pagamento, preparo e entrega
Auditar acao sensivelusers, orders, production_events, paymentsReconstruir autoria e historico de mudanca

10. Normalizacao e extensoes futuras

11. Prioridades de migracao da persistencia atual

PrioridadeEscopo de migracaoRazao
1users, patients e ordersBase do fluxo principal e das permissoes
2order_items e paymentsFecham a integridade comercial e financeira
3production_eventsHabilitam auditoria e timeline persistente
4clinics, factories e configuracoesEscala de governanca multi-parceiro