package router import ( "bookhoard/internal/handlers" ) func registerMediaRoutes(cfg *Config) { e := cfg.Echo // JWT middleware for protected routes jwtMiddleware := createJWTMiddleware(cfg) protected := e.Group("/api", jwtMiddleware) // Media item handler mediaHandler := handlers.NewMediaHandler(cfg.Queries) // Download route (public) e.GET("/api/books/:uuid/download", mediaHandler.DownloadBook) // Shelf management (protected) protected.POST("/devices/:id/shelves", mediaHandler.AddToShelf) protected.GET("/devices/:id/shelves", mediaHandler.GetShelf) protected.DELETE("/devices/:id/shelves", mediaHandler.RemoveFromShelf) protected.DELETE("/devices/:id/shelves/clear", mediaHandler.ClearShelf) // Bulk book operations (protected) books := protected.Group("/books") books.POST("/bulk-delete", mediaHandler.HandleBulkDelete) books.POST("/bulk-update", mediaHandler.HandleBulkUpdate) }