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 TeamMay 18, 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.