package main import ( "context" "log" "time" ) func main() { // Load configuration config, err := LoadConfig(".") if err != nil { log.Fatalf("Failed to load configuration: %v", err) } // Initialize logger appLogger := initLogger(config.Logging) appLogger.Info("Starting TED scraper application", map[string]interface{}{ "version": "1.0.0", }) // Initialize MongoDB connection mongoManager := initMongoDB(config.Database.MongoDB, appLogger) defer func() { ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() if err := mongoManager.Close(ctx); err != nil { appLogger.Error("Failed to close MongoDB connection", map[string]interface{}{ "error": err.Error(), }) } }() initTEDScraper(*config, mongoManager, appLogger) appLogger.Info("TED scraper application stopped", map[string]interface{}{}) }