package routers import ( "fmt" sdkmiddleware "git.apinb.com/bsm-sdk/core/middleware" deliverylogic "git.apinb.com/heqiapp/platforms/backend/api/internal/logic/delivery" "github.com/gin-gonic/gin" ) func RegisterDelivery(serviceKey string, engine *gin.Engine) { basePath := fmt.Sprintf("/%s/delivery/v1", serviceKey) anonymous := engine.Group(basePath) anonymous.POST("/auth/login", deliverylogic.Login) protected := engine.Group(basePath) protected.Use(sdkmiddleware.JwtAuth(true)) protected.Use(deliverylogic.RequireDeliveryAdmin()) protected.GET("/auth/profile", deliverylogic.CurrentProfile) protected.PUT("/auth/password", deliverylogic.ChangePassword) protected.GET("/delivery_menu", deliverylogic.ListMenu) protected.GET("/invitation/qrcode", deliverylogic.InvitationQRCode) protected.GET("/dashboard/overview", deliverylogic.Dashboard) protected.GET("/dashboard/reports", deliverylogic.DashboardReport) protected.GET("/delivery_profile", deliverylogic.ListProfile) staff := protected.Group("/staff_account") staff.GET("", deliverylogic.ListStaff) staff.POST("", deliverylogic.CreateStaff) staff.GET("/:identity", deliverylogic.GetStaff) staff.PUT("/:identity", deliverylogic.UpdateStaff) staff.PUT("/:identity/password", deliverylogic.ResetStaffPassword) staff.PATCH("/:identity/status", deliverylogic.UpdateStaffStatus) staff.DELETE("/:identity", deliverylogic.ArchiveStaff) credential := protected.Group("/staff_credential") credential.GET("", deliverylogic.ListCredential) credential.POST("", deliverylogic.CreateCredential) credential.GET("/:identity", deliverylogic.GetCredential) credential.PUT("/:identity", deliverylogic.UpdateCredential) credential.PATCH("/:identity/status", deliverylogic.UpdateCredentialStatus) credential.DELETE("/:identity", deliverylogic.ArchiveCredential) user := protected.Group("/user_account") user.GET("", deliverylogic.ListUser) user.POST("", deliverylogic.CreateUser) user.GET("/:identity", deliverylogic.GetUser) user.PUT("/:identity", deliverylogic.UpdateUser) user.PUT("/:identity/password", deliverylogic.ResetUserPassword) user.PATCH("/:identity/status", deliverylogic.UpdateUserStatus) user.DELETE("/:identity", deliverylogic.ArchiveUser) address := protected.Group("/user_address") address.GET("", deliverylogic.ListAddress) address.POST("", deliverylogic.CreateAddress) address.GET("/:identity", deliverylogic.GetAddress) address.PUT("/:identity", deliverylogic.UpdateAddress) address.PATCH("/:identity/status", deliverylogic.UpdateAddressStatus) address.DELETE("/:identity", deliverylogic.ArchiveAddress) contract := protected.Group("/gasorder_contract") contract.GET("", deliverylogic.ListContract) contract.POST("", deliverylogic.CreateContract) contract.GET("/:identity", deliverylogic.GetContract) contract.PUT("/:identity", deliverylogic.UpdateContract) contract.POST("/:identity/activate", deliverylogic.ActivateContract) contract.POST("/:identity/renew", deliverylogic.RenewContract) contract.POST("/:identity/terminate", deliverylogic.TerminateContract) product := protected.Group("/gasorder_contract_product") product.GET("", deliverylogic.ListContractProduct) product.POST("", deliverylogic.BindContractProduct) product.GET("/:identity", deliverylogic.GetContractProduct) product.POST("/:identity/unbind", deliverylogic.UnbindContractProduct) protected.GET("/gasorder_contract_revision", deliverylogic.ListContractRevision) protected.GET("/gasorder_contract_revision/:identity", deliverylogic.GetContractRevision) protected.GET("/product_info", deliverylogic.ListProductCandidate) protected.GET("/product_info/:identity", deliverylogic.GetProductCandidate) order := protected.Group("/gasorder_basic") order.GET("", deliverylogic.ListOrder) order.POST("", deliverylogic.CreateOrder) order.GET("/:identity", deliverylogic.GetOrder) order.POST("/:identity/assign", deliverylogic.AssignOrder) order.POST("/:identity/reclaim", deliverylogic.ReclaimOrder) order.POST("/:identity/adjust-amount", deliverylogic.AdjustOrderAmount) order.POST("/:identity/exception", deliverylogic.OrderException) order.POST("/:identity/recover", deliverylogic.OrderRecover) order.POST("/:identity/cancel", deliverylogic.OrderCancel) protected.GET("/wallet_basic", deliverylogic.ListWallet) protected.GET("/wallet_basic/:identity", deliverylogic.GetWallet) protected.POST("/wallet_basic/recharge", deliverylogic.Recharge) protected.GET("/wallet_recharge", deliverylogic.ListRecharge) protected.GET("/wallet_recharge/:identity", deliverylogic.GetRecharge) protected.POST("/wallet_recharge", deliverylogic.Recharge) protected.GET("/wallet_bank", deliverylogic.ListBank) protected.GET("/wallet_bank/:identity", deliverylogic.GetBank) protected.GET("/wallet_payment", deliverylogic.ListPayment) protected.GET("/wallet_payment/:identity", deliverylogic.GetPayment) protected.GET("/wallet_record", deliverylogic.ListRecord) protected.GET("/wallet_record/:identity", deliverylogic.GetRecord) protected.GET("/wallet_refund", deliverylogic.ListRefund) protected.GET("/wallet_refund/:identity", deliverylogic.GetRefund) protected.GET("/wallet_apply_cash", deliverylogic.ListApplyCash) protected.POST("/wallet_apply_cash", deliverylogic.CreateApplyCash) protected.GET("/wallet_apply_cash/:identity", deliverylogic.GetApplyCash) protected.GET("/fin_settlement", deliverylogic.ListSettlement) protected.GET("/fin_settlement/:identity", deliverylogic.GetSettlement) }