Skip to content

Diagramas & Fluxos de Sequência

1. Cotação Pública, Captura de Lead e WhatsApp Chat

Section titled “1. Cotação Pública, Captura de Lead e WhatsApp Chat”
sequenceDiagram
    autonumber
    actor User as Cliente Web
    participant Form as PublicQuote Form
    participant API as Functions API
    participant D1 as Cloudflare D1 DB
    participant WA as Evolution API (WhatsApp)
    participant Admin as Inbox do Manager

    User->>Form: Preenche residência e clica em "Falar com Agente"
    Form->>API: POST /api/leads/quote-request (dados da quote)
    API->>D1: INSERT INTO leads (status: NEW)
    API->>API: POST /api/leads/chat-initiate
    API->>D1: INSERT INTO chat_channels & chat_messages
    API->>WA: Send initial WhatsApp template
    WA-->>User: Recebe WhatsApp de confirmação
    API-->>Admin: Notifica novo Chat/Lead na Inbox em tempo real

2. Mutação Otimista e Sincronização Atômica

Section titled “2. Mutação Otimista e Sincronização Atômica”
sequenceDiagram
    autonumber
    participant App as React App
    participant Query as TanStack Query Cache
    participant Store as Zustand Stores
    participant API as Edge API (/api/atomic/*)
    participant D1 as Cloudflare D1

    Note over App, D1: 1. Hydration Inicial
    App->>API: GET /api/boot
    API->>D1: SELECT * ALL TABLES
    D1-->>API: Full State JSON
    API-->>Query: Seed Query Cache
    Query->>Store: Project to Zustand Stores (useStoreQuerySync)

    Note over App, D1: 2. Mutação Otimista & Sync
    App->>Store: Action Call (ex: updateRequest)
    Store->>App: Update UI Instantly (Optimistic)
    Store->>API: POST /api/atomic/requests
    alt Sucesso no Servidor
        API->>D1: UPDATE D1 DB
        D1-->>API: OK
        API-->>Query: Refresh Entity Cache
    else Erro no Servidor
        API-->>Store: Fail Signal
        Store->>App: Rollback State + Toast "Sync Failed"
    end