Logica do SistemaSecao 4
Carga Adicional — Microservico Externo
CargaAdicionalScraperService (desativado)
Arquivo: cargo_fleet.Application/CargaAdicionalScraper/CargaAdicionalScraperService.cs
Cliente HTTP para um "ScraperOrchestrator" (servico externo). Metodos:
ConfigurarTenantAsync:POSTcomtenantId,tenantName,galileuUsername,galileuPasswordem texto claro (P-11).AtualizarCredenciaisGalileuAsync:PUTcom credenciais.IniciarScrapingAutomaticoAsync:POST start.StopScraperAsync:POST stop.
Status: Todos os metodos estao comentados nos event handlers. O scraper nao esta ativo.
Event Handlers de Credenciais
Diretorio: cargo_fleet.Application/EventHandlers/
| Handler | Status | Comportamento |
|---|---|---|
GalileuCredentialCreatedEventHandler | Vazio | await Task.CompletedTask — logica de scraper comentada |
GalileuCredentialUpdatedEventHandler | Vazio | await Task.CompletedTask — logica de scraper comentada |
GalileuCredentialDeletedEventHandler | Ativo | Envia WhatsApp util_credencial_galileu_limpa |
Incoerencias Identificadas
| ID | Descricao |
|---|---|
| P-09 | Senha "1q2w3E*" hardcoded em CreateTenant |
| P-10 | Token OAuth nao cacheado — uma autenticacao por chamada |
| P-11 | Senha Galileu transmitida em texto claro para ScraperOrchestrator |
CargaAdicionalService
Arquivo:
cargo_fleet.Application/CargasAdicionais/CargaAdicionalService.csCliente HTTP para um microservico externo separado (nao e parte do monorepo).
VerificarCargasAdicionaisEmLoteAsync(codigosOferta, tenantId):
GetAccessTokenAsync(endpoint configurado emCargaAdicionalAuthCredentials).POST {CargaAdicionalService:BaseUrl}/api/app/oferta-scraps/custom-batch.{ NormalizedTenantName, CodigoOferta: [list] }.List<OfertaScrapBatchResult>comCodigoOfertaeCargaAdicional(bool?).VerificarCargaAdicionalAsync(codProgColeta, tenantId): (metodo individual — legado)
GET {BaseUrl}/api/app/oferta-scraps/custom?CodigoOferta={cod}&NormalizedTenantName={name}.CreateTenant(name):
POST {BaseUrl}/api/saas/tenants.adminPassword = "1q2w3E*"hardcoded (P-09).GetAccessTokenAsync (privado):
CargaAdicionalAuthCredentials(ClientId, ClientSecret, Username, Password, Scope).