package inventoryreceipt import ( "github.com/Caknoooo/go-gin-clean-starter/middlewares" "github.com/Caknoooo/go-gin-clean-starter/modules/auth/service" "github.com/Caknoooo/go-gin-clean-starter/modules/inventory_receipt/controller" "github.com/Caknoooo/go-gin-clean-starter/pkg/constants" "github.com/gin-gonic/gin" "github.com/samber/do" ) func RegisterRoutes(server *gin.Engine, injector *do.Injector) { receiptController := do.MustInvoke[controller.InventoryReceiptController](injector) jwtService := do.MustInvokeNamed[service.JWTService](injector, constants.JWTService) receiptRoutes := server.Group("/api/v1/inventory-receipts") { receiptRoutes.POST("", middlewares.Authenticate(jwtService), receiptController.Create) receiptRoutes.GET(":id", middlewares.Authenticate(jwtService), receiptController.GetById) receiptRoutes.PUT(":id", middlewares.Authenticate(jwtService), receiptController.Update) receiptRoutes.DELETE(":id", middlewares.Authenticate(jwtService), receiptController.Delete) receiptRoutes.GET("", middlewares.Authenticate(jwtService), receiptController.GetAll) receiptRoutes.GET(":id/lines", middlewares.Authenticate(jwtService), receiptController.GetLinesByReceiptId) receiptRoutes.POST(":id/lines", middlewares.Authenticate(jwtService), receiptController.CreateLine) receiptRoutes.PUT("lines/:id", middlewares.Authenticate(jwtService), receiptController.UpdateLine) receiptRoutes.DELETE("lines/:id", middlewares.Authenticate(jwtService), receiptController.DeleteLine) receiptRoutes.POST(":id/complete", middlewares.Authenticate(jwtService), receiptController.OnComplete) } }