Pular para o conteúdo principal

Checklist System

Sistema de checklists de inspecao do Facter Truck. Permite criar templates de inspecao, executar checklists em veiculos/carretas e registrar conformidades por item.


Funcionalidades

FuncionalidadeDescricao
Multi-trailerChecklist pode cobrir veiculo + multiplas carretas
TemplatesTemplates reutilizaveis com categorias e itens
Conformidade (5 status)CONFORME, NAO_CONFORME, NAO_APLICAVEL, PENDENTE, NAO_VERIFICADO
Acoes inlineCriar OS ou solicitar peca diretamente de um item nao conforme
FinalizacaoValida que todos os itens foram verificados antes de finalizar
DisplayIdFormato CHK-{ANO}-{SEQUENCIAL} para identificacao humana

Modelo de Entidades

ChecklistTemplate
├── id, companyId, name, assetType, isActive
├── categories: ChecklistCategory[]
│ └── items: ChecklistItemTemplate[]
│ └── name, description, requiresPhoto, requiresNote

Checklist
├── id, templateId, vehicleId, trailerId, employeeId
├── status: ChecklistStatus (PENDING, IN_PROGRESS, COMPLETED, CANCELLED)
├── displayId: string (CHK-2026-00042)
├── completedAt, notes
└── items: ChecklistItem[]
└── conformity: ConformityStatus, notes, photos

ConformityStatus

StatusDescricaoCor
PENDENTENao verificado aindaCinza
CONFORMEItem em conformidadeVerde
NAO_CONFORMEItem com problemaVermelho
NAO_APLICAVELItem nao se aplica neste contextoAzul
NAO_VERIFICADONao foi possivel verificarAmarelo

Fluxo de Dados

┌─────────────────────────────────────────────────────────────────┐
│ ZUSTAND STORE (SSOT) │
│ checklistItems: Map<itemId, { conformity, notes, photos }> │
└──────────────────────────┬──────────────────────────────────────┘

Debounce 500ms


┌─────────────────────────────────────────────────────────────────┐
│ BATCH API (PATCH /checklist-item/batch) │
│ Envia apenas itens modificados desde o ultimo sync │
└──────────────────────────┬──────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────┐
│ BACKEND (Transacao) │
│ Atualiza todos os itens em uma unica transacao Prisma │
└─────────────────────────────────────────────────────────────────┘

O Zustand store e a unica fonte de verdade (SSOT) durante a execucao do checklist. Updates sao otimistas: a UI atualiza imediatamente e o sync com o backend acontece via batch apos debounce.


API Endpoints

Checklist

MetodoEndpointDescricao
POST/checklistsCriar checklist a partir de template
GET/checklistsListar checklists (paginado)
GET/checklists/:idBuscar checklist por ID
PATCH/checklists/:id/finalizeFinalizar checklist

Checklist Items

MetodoEndpointDescricao
PATCH/checklist-item/conformity/batchAtualizar conformidade em batch
PATCH/checklist-item/:idAtualizar item individual

Templates

MetodoEndpointDescricao
POST/checklist-templatesCriar template
GET/checklist-templatesListar templates
GET/checklist-templates/:idBuscar template
PUT/checklist-templates/:idAtualizar template
DELETE/checklist-templates/:idDesativar template

Componentes Frontend

ChecklistDetailsPage
├── ChecklistHeader # Status, displayId, acoes
├── ChecklistStatsBar # Contadores de conformidade
├── CategoryAccordionList # Lista de categorias expansiveis
│ └── ChecklistCategory
│ └── ChecklistItem
│ └── ConformityControl # Botoes de conformidade
└── ChecklistActions # Finalizar, cancelar

Regras de Negocio

  • Finalizacao: Todos os itens devem ter conformidade diferente de PENDENTE
  • Multi-trailer: Um checklist pode referenciar um veiculo E uma carreta simultaneamente
  • Controle hibrido: Combina optimistic updates (UX rapida) com batch sync (consistencia)
  • DisplayId: Gerado automaticamente no formato CHK-{ANO}-{SEQUENCIAL}, sequencial por empresa

Performance (Antes vs Depois do Refactoring)

MetricaAntesDepois
Latencia por click~200ms (HTTP roundtrip)~0ms (otimista)
Requests por checklistN (um por item)1 (batch)
Race conditionsPossiveis com clicks rapidosEliminadas (debounce + batch)
EstadoDividido (useState + useQuery)Unificado (Zustand SSOT)

Integracoes

  • Work Order: Criar OS diretamente de um item nao conforme
  • Activity System: Eventos de criacao e finalizacao de checklists
  • Parts & Services: Solicitar pecas ou servicos a partir de itens do checklist

Referencias