package main import ( "context" "tercul/internal/app" "tercul/internal/jobs/linguistics" "tercul/internal/platform/config" log "tercul/internal/platform/log" ) func main() { log.LogInfo("Starting enrichment tool...") // Load configuration from environment variables config.LoadConfig() // Initialize structured logger with appropriate log level log.SetDefaultLevel(log.InfoLevel) log.LogInfo("Starting Tercul enrichment tool", log.F("environment", config.Cfg.Environment), log.F("version", "1.0.0")) // Build application components appBuilder := app.NewApplicationBuilder() if err := appBuilder.Build(); err != nil { log.LogFatal("Failed to build application", log.F("error", err)) } defer appBuilder.Close() // Get all works works, err := appBuilder.GetApplication().WorkQueries.ListWorks(context.Background(), 1, 10000) // A bit of a hack, but should work for now if err != nil { log.LogFatal("Failed to get works", log.F("error", err)) } // Enqueue analysis for each work for _, work := range works.Items { err := linguistics.EnqueueAnalysisForWork(appBuilder.GetAsynq(), work.ID) if err != nil { log.LogError("Failed to enqueue analysis for work", log.F("workID", work.ID), log.F("error", err)) } } log.LogInfo("Enrichment tool finished.") }