package router import ( "evanpage-backend/internal/config" "evanpage-backend/internal/db" "evanpage-backend/internal/handler" "evanpage-backend/internal/middleware" "evanpage-backend/internal/repository" "evanpage-backend/internal/service" "github.com/gin-gonic/gin" ) func Setup(cfg *config.Config) *gin.Engine { r := gin.New() r.Use(middleware.Logger()) r.Use(middleware.CORS()) r.Use(gin.Recovery()) userRepo := repository.NewUserRepository(db.DB) userService := service.NewUserService(userRepo) authHandler := handler.NewAuthHandler(userService) healthHandler := handler.NewHealthHandler(db.DB) // Public routes r.POST("/api/auth/local-login", authHandler.LocalLogin) r.POST("/api/auth/lookup-binding", authHandler.LookupBinding) r.POST("/api/auth/bind-keycloak", authHandler.BindKeycloak) r.POST("/api/auth/init", authHandler.InitAdmin) r.GET("/api/health", healthHandler.Check) return r }