From f6f37ff9d15611474a62e7628808416c4b0f14e0 Mon Sep 17 00:00:00 2001 From: Tour Date: Sun, 7 Dec 2025 14:43:10 +0100 Subject: [PATCH] Add startup enrichment trigger for lot intelligence data MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added StartupEvent observer to QuarkusWorkflowScheduler - Triggers enrichment of lots closing within 24 hours on startup - Ensures bid intelligence data is populated immediately after deployment - Fixes issue where server showed 0 lots with bids This ensures the GraphQL enrichment service runs at startup to populate bid_count, starting_bid, followers_count and other intelligence fields. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Former-commit-id: 7ab21ae84099601eff0cf8cd69b6900b4fb5960f --- .../auctiora/QuarkusWorkflowScheduler.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/main/java/auctiora/QuarkusWorkflowScheduler.java b/src/main/java/auctiora/QuarkusWorkflowScheduler.java index 882d0a1..fc8f425 100644 --- a/src/main/java/auctiora/QuarkusWorkflowScheduler.java +++ b/src/main/java/auctiora/QuarkusWorkflowScheduler.java @@ -1,7 +1,9 @@ package auctiora; +import io.quarkus.runtime.StartupEvent; import io.quarkus.scheduler.Scheduled; import jakarta.enterprise.context.ApplicationScoped; +import jakarta.enterprise.event.Observes; import jakarta.inject.Inject; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.jboss.logging.Logger; @@ -31,9 +33,26 @@ public class QuarkusWorkflowScheduler { @Inject ImageProcessingService imageProcessor; - + + @Inject + LotEnrichmentService enrichmentService; + @ConfigProperty(name = "auction.database.path") String databasePath; + + /** + * Triggered on application startup to enrich existing lots with bid intelligence + */ + void onStart(@Observes StartupEvent ev) { + LOG.info("🚀 Application started - triggering initial lot enrichment..."); + try { + // Enrich lots closing within 24 hours as high priority on startup + int enriched = enrichmentService.enrichClosingSoonLots(24); + LOG.infof("✓ Startup enrichment complete: %d lots enriched", enriched); + } catch (Exception e) { + LOG.errorf(e, "❌ Startup enrichment failed: %s", e.getMessage()); + } + } /** * Workflow 1: Import Scraper Data