recordId); Log::info('ProcessRepuveResponse: Enviando inscripción a REPUVE Nacional...', [ 'niv' => $this->responseData['niv'] ?? 'N/A', 'placa' => $this->responseData['placa'] ?? 'N/A', ]); $apiResponse = $repuveService->inscribirVehiculo($this->responseData); Log::info('ProcessRepuveResponse: Respuesta recibida de REPUVE', [ 'has_error' => $apiResponse['has_error'], 'error_code' => $apiResponse['error_code'] ?? null, 'timestamp' => $apiResponse['timestamp'] ?? null, ]); if($apiResponse['has_error']){ $error = Error::where('code', $apiResponse['error_code'])->first(); Log::error('ProcessRepuveResponse: Error en respuesta REPUVE', [ 'error_code' => $apiResponse['error_code'], 'error_message' => $apiResponse['error_message'] ?? 'Sin mensaje', 'error_found_in_db' => $error ? 'Sí' : 'No', ]); $record->update([ 'error_id' => $error?->id, 'api_response' => $apiResponse, 'error_occurred_at' => now(), ]); Log::warning('ProcessRepuveResponse: Record actualizado con error', [ 'record_id' => $record->id, 'error_id' => $error?->id, ]); } else { $record->update([ 'error_id' => null, 'api_response' => $apiResponse, 'error_occurred_at' => null, ]); } } public function failed(\Throwable $exception): void { Log::critical('ProcessRepuveResponse: Job FALLÓ después de todos los intentos', [ 'record_id' => $this->recordId, 'exception_class' => get_class($exception), 'exception_message' => $exception->getMessage(), 'exception_file' => $exception->getFile(), 'exception_line' => $exception->getLine(), 'attempts' => $this->attempts(), ]); $record = Record::find($this->recordId); if($record){ Log::info('ProcessRepuveResponse: Buscando error genérico código -1'); $error = Error::where('code', '-1')->first(); if(!$error){ Log::warning('ProcessRepuveResponse: Error código -1 NO encontrado en BD'); } $record->update([ 'error_id' => $error?->id, 'api_response' => [ 'has_error' => true, 'error_message' => $exception->getMessage(), ], 'error_occurred_at' => now(), ]); Log::error('ProcessRepuveResponse: Record actualizado con error crítico', [ 'record_id' => $record->id, 'error_id' => $error?->id, ]); } else { Log::error('ProcessRepuveResponse: Record NO encontrado', [ 'record_id' => $this->recordId, ]); } } }