package main import ( "log" "net/http" "mgit.msbls.de/m/KanzlAI-mGMT/internal/auth" "mgit.msbls.de/m/KanzlAI-mGMT/internal/config" "mgit.msbls.de/m/KanzlAI-mGMT/internal/db" "mgit.msbls.de/m/KanzlAI-mGMT/internal/router" "mgit.msbls.de/m/KanzlAI-mGMT/internal/services" ) func main() { cfg, err := config.Load() if err != nil { log.Fatalf("Failed to load config: %v", err) } database, err := db.Connect(cfg.DatabaseURL) if err != nil { log.Fatalf("Failed to connect to database: %v", err) } defer database.Close() authMW := auth.NewMiddleware(cfg.SupabaseJWTSecret, database) // Start CalDAV sync service calDAVSvc := services.NewCalDAVService(database) calDAVSvc.Start() defer calDAVSvc.Stop() handler := router.New(database, authMW, cfg, calDAVSvc) log.Printf("Starting KanzlAI API server on :%s", cfg.Port) if err := http.ListenAndServe(":"+cfg.Port, handler); err != nil { log.Fatal(err) } }