Diagrama de Sequencia
sequenceDiagram
participant C as Cliente
participant API as Cloud Function
participant BQ as BigQuery
participant GCS as Cloud Storage
participant TEL as Telemetria
Note over C,TEL: POST /processos-filiacao (multipart)
C->>API: POST dados + arquivos
API->>API: Validar API Key
API->>API: Validar JSON dados (Pydantic)
loop Cada arquivo
API->>GCS: Upload para /{hash}/{nome}.{ext}
GCS-->>API: Path do arquivo
end
API->>BQ: INSERT processos_filiacao_dados
BQ-->>API: Sucesso
API-->>C: 201 {hash, arquivos_enviados}
API-)TEL: Log async (não-bloqueante)
Note over C,TEL: PUT /processos-filiacao/{hash} (JSON)
C->>API: PUT campos mutáveis
API->>API: Validar API Key
API->>API: Validar campos (Pydantic)
loop Cada campo não nulo
API->>BQ: INSERT processos_filiacao_eventos
end
API-->>C: 200 {hash, eventos_registrados}
API-)TEL: Log async (não-bloqueante)