package routes import ( "nearle/facade" "github.com/gofiber/fiber/v2" ) func RegisterProductRoutes(api fiber.Router, f *facade.Facade) { products := api.Group("/v1/web/products") products.Get("/getproductsubcategories", f.ProductController.GetProductSubCategory) products.Get("/getproductscount", f.ProductController.GetProductCount) products.Get("/getproductcategories", f.ProductController.GetProductCategory) products.Get("/getproductvariants", f.ProductController.GetProductVariants) products.Get("/getcatalougeproducts", f.ProductController.GetCatalougeProducts) products.Get("/getproductstocks", f.ProductController.GetProductStocks) products.Post("/createproductstock", f.ProductController.CreateProductStock) products.Post("/create", f.ProductController.CreateProduct) products.Put("/update", f.ProductController.UpdateProduct) products.Delete("/delete", f.ProductController.DeleteProduct) products.Get("/getstockstatement", f.ProductController.GetStockStatement) products.Get("/getlocationproducts", f.ProductController.GetLocationProducts) products.Get("/getlocationproductsummary", f.ProductController.GetLocationProductSummary) products.Get("/getsaletemplate", f.ProductController.GetSaleTemplate) products.Get("/getallproducts", f.ProductController.GetAllProducts) products.Put("/updateproductlocation", f.ProductController.UpdateProductLocation) products.Post("/createproductlocation", f.ProductController.CreateProductLocation) products.Post("/importcatalogueproduct", f.ProductController.ImportCatalogueProduct) products.Get("/getimportedcatalogueproducts", f.ProductController.GetImportedCatalogueProducts) // Repairing catalogue links. A dry run unless `apply=true` — see the handler, // and `services/catalogueRelink.go` for why a dangling link can only be // adopted or cleared, never repaired by name. products.Get("/relinkcatalogue", f.ProductController.RelinkCatalogue) products.Get("/gettenantcategories", f.ProductController.GetTenantCategories) products.Post("/resolvecategories", f.ProductController.ResolveCategories) products.Put("/recategorise", f.ProductController.Recategorise) products.Delete("/deleteproductlocation", f.ProductController.DeleteProductLocation) // Releasing a product to the shops. Importing no longer does this: a // product lands in the admin catalogue unpublished and unpriced, and only // this step — which refuses without a price — makes it sellable. products.Post("/publishproduct", f.ProductController.PublishProduct) products.Post("/unpublishproduct", f.ProductController.UnpublishProduct) products.Post("/createproductvariant", f.ProductController.CreateProductVariant) products.Put("/updateproductvariant", f.ProductController.UpdateProductVariant) // Sizes as a relationship: attach one product under another, and detach it. products.Post("/addproductvariant", f.ProductController.AddProductVariant) products.Delete("/removeproductvariant", f.ProductController.RemoveProductVariant) products.Post("/createstockrequest", f.StockRequestController.CreateStockRequest) products.Get("/getstockrequests", f.StockRequestController.GetStockRequests) products.Put("/updatestockrequest", f.StockRequestController.UpdateStockRequest) products = api.Group("/v1/mob/products") products.Get("/getproductbyvariant", f.ProductController.GetProductByVariant) products.Get("/getproductsubcategories", f.ProductController.GetProductSubCategory) products.Get("/getallproducts", f.ProductController.GetAllProducts) products.Get("/getproductsbysubcategory", f.ProductController.GetProductsBySubcategory) products.Put("/update", f.ProductController.UpdateProduct) products.Get("/getlocationproducts", f.ProductController.GetLocationProducts) products.Put("/updateproductlocation", f.ProductController.UpdateProductLocation) products.Post("/importcatalogueproduct", f.ProductController.ImportCatalogueProduct) products.Get("/getimportedcatalogueproducts", f.ProductController.GetImportedCatalogueProducts) products.Get("/gettenantcategories", f.ProductController.GetTenantCategories) }