intermediate
bateria
ciclo-de-vida
estados

Estados do Ciclo de Vida do Pacote

Cada estado pelo qual um pacote de bateria passa no Levy Swap, transicoes legais e como o log de auditoria funciona

Levy Fleets Team18 de maio de 20266 min read

Estados do Ciclo de Vida do Pacote

Todo pacote no Levy Swap esta sempre em exatamente um estado. A maquina de estados e aplicada no servidor - transicoes ilegais sao bloqueadas no banco de dados.

A Maquina de Estados

ordered -> received -> deployed -> in_use -> returned -> recycled
                          v          ^
                       swap_in    swap_out
                          v          ^
                     in-station <-> charging -> charged
                                                  v
                                              maintenance

Estados Primarios

EstadoSignificadoDefinido Por
orderedRegistro existe, QR criado, pacote nao recebidoDialogo de mint
receivedPacote recebido; ainda nao instaladoFluxo de recepcao
deployedPacote atribuido a veiculo e atualmente instaladoConclusao de troca
in_useEquivalente a deployed em algumas vistasSistema
returnedRemovido do veiculo, decisao pendenteConclusao de troca
recycledAposentado permanentementeManual / aposentadoria forcada

Estados de Estacao / Carga

EstadoSignificado
chargingEm slot, plugado, ainda nao cheio
chargedEm slot a >=95%, pronto para instalar
maintenanceFora de rotacao - defeito, garantia

Transicoes Legais

  • ordered -> received
  • received -> deployed (primeira instalacao)
  • received -> charging ou received -> charged
  • deployed -> returned
  • returned -> charging ou returned -> maintenance
  • charging -> charged
  • charged -> deployed
  • maintenance -> charging, maintenance -> returned, maintenance -> recycled
  • returned -> recycled
  • charged -> maintenance

Estado terminal: recycled. Sem transicoes posteriores; linha preservada para auditoria de garantia.

Aposentadoria Forcada

Quando SoH cai abaixo de 40, a proxima troca roteia o pacote para returned e depois recycled em vez de voltar ao inventario.

O Log de Auditoria

Cada mudanca de estado escreve linha em battery_pack_history:

  • from_status e to_status
  • actor_type - system, team_member ou juicer
  • actor_id
  • swap_event_id
  • station_id
  • Timestamp

Append-only e retencao para sempre. Permite reivindicacoes de garantia com historico completo.

O Que "in_use" Significa

in_use e deployed sao muito proximos. Distincao importa em:

  1. Verificacao de concorrencia na remocao - evita troca dupla
  2. Elegibilidade Juicer - motor nao cria recompensa se pacote esta em maintenance

Lendo o Historico

Pagina de detalhe do pacote -> tab Historico mostra log de transicoes. Para pacotes com 100+ trocas, pagina por mes.

Problemas Comuns

  • "Pack is in use" durante troca - pacote ja em outro veiculo
  • Pacote preso em received ha semanas - nao foi instalado nem colocado em slot
  • Pacote esperado faltando no inventario - cheque audit log

Veja Solucao de Problemas.