package routes import ( "antrian-operasi/internal/config" "antrian-operasi/internal/database" antrianoperasi "antrian-operasi/internal/domain/antrian_operasi" "antrian-operasi/internal/domain/dashboard" "antrian-operasi/internal/domain/reference/diagnosa" "antrian-operasi/internal/domain/reference/dokter" "antrian-operasi/internal/domain/reference/kategori" "antrian-operasi/internal/domain/reference/pasien" "antrian-operasi/internal/domain/reference/spesialis" "antrian-operasi/internal/domain/reference/tindakan" "antrian-operasi/internal/middleware" "net/http" "github.com/gin-gonic/gin" swaggerFiles "github.com/swaggo/files" ginSwagger "github.com/swaggo/gin-swagger" ) func RegisterRoutes(cfg *config.Config, dbService database.Service) *gin.Engine { gin.SetMode(cfg.Server.Mode) router := gin.New() router.GET("/ping", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ "message": "pong", }) }) router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) // init middleware router.Use(middleware.SecureCORSConfig(cfg.Security)) api := router.Group("/api") { antrianoperasi.RegisterRoutes(api, dbService) } reference := api.Group("/reference") { kategori.RegisterRoutes(reference, dbService) spesialis.RegisterRoutes(reference, dbService) dokter.RegisterRoutes(reference, dbService) pasien.RegisterRoutes(reference, dbService) diagnosa.RegisterRoutes(reference, dbService) tindakan.RegisterRoutes(reference, dbService) } dboard := api.Group("dashboard") { dashboard.RegisterRoutes(dboard, dbService) } return router }