package api import ( "github.com/gofiber/fiber/v2" "wucher/internal/service" "wucher/internal/transport/http/handlers" "wucher/internal/transport/http/middleware" ) func registerContactRoutes(v1 fiber.Router, contactHandler *handlers.ContactHandler, authMiddleware fiber.Handler, authSvc *service.AuthService) { contacts := v1.Group("/contacts", authMiddleware) contacts.Post("/create", middleware.PermissionRequired(authSvc, "user.create"), contactHandler.Create) contacts.Get("/get-all", middleware.PermissionRequired(authSvc, "user.read"), contactHandler.List) contacts.Get("/get-all/dt", middleware.PermissionRequired(authSvc, "user.read"), contactHandler.ListDatatable) contacts.Get("/:user_id", middleware.PermissionRequired(authSvc, "user.read"), contactHandler.Get) contacts.Patch("/:user_id", middleware.PermissionRequired(authSvc, "user.update"), contactHandler.Update) contacts.Delete("/:user_id", middleware.PermissionRequired(authSvc, "user.delete"), contactHandler.Delete) contacts.Patch("/:user_id/status", middleware.PermissionRequired(authSvc, "user.update"), contactHandler.UpdateContactStatus) contacts.Patch("/:user_id/role", middleware.PermissionRequired(authSvc, "user.update"), contactHandler.UpdateContactRole) contacts.Patch("/:user_id/pilot-category", middleware.PermissionRequired(authSvc, "user.update"), contactHandler.UpdatePilotCategory) contacts.Patch("/:user_id/license", middleware.PermissionRequired(authSvc, "user.update"), contactHandler.UpdateLicense) contacts.Patch("/:user_id/chief-flags", middleware.PermissionRequired(authSvc, "user.update"), contactHandler.UpdateChiefFlags) contacts.Post("/bulk-update", middleware.PermissionRequired(authSvc, "user.update"), contactHandler.BulkUpdate) }