package main import ( "chatapp3-golang/internal/config" invitehttp "chatapp3-golang/internal/http" "chatapp3-golang/internal/integration" "chatapp3-golang/internal/repo" "chatapp3-golang/internal/service" "context" "log" "time" ) func main() { cfg := config.Load() repository, err := repo.New(cfg) if err != nil { log.Fatalf("init repository failed: %v", err) } if cfg.AutoMigrate { if err := repository.AutoMigrate(); err != nil { log.Fatalf("auto migrate failed: %v", err) } } ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() if err := repository.Ping(ctx); err != nil { log.Fatalf("ping dependencies failed: %v", err) } javaClient := integration.New(cfg) inviteService := service.NewInviteService(cfg, repository, javaClient) baishunService := service.NewBaishunService(cfg, repository, javaClient) router := invitehttp.NewRouter(cfg, repository, javaClient, inviteService, baishunService) log.Printf("chatapp3-golang invite api listening on %s", cfg.ListenAddr) if err := router.Run(cfg.ListenAddr); err != nil { log.Fatalf("run server failed: %v", err) } }