package router import ( "netina/database" license_repository "netina/repositories/license" owner_repository "netina/repositories/owner" plan_repository "netina/repositories/plan" store_repository "netina/repositories/store" "netina/services" "github.com/labstack/echo/v4" ) func OwnerRoutes(e *echo.Echo) { db := database.Db() owner := e.Group("/owner") ownerCommandRepo := &owner_repository.OwnerCommandRepository{DB: &db} ownerQueryRepo := &owner_repository.OwnerQueryRepository{DB: &db} ownerService := &services.OwnerService{ CommandRepo: *ownerCommandRepo, QueryRepo: *ownerQueryRepo, } owner.POST("/",ownerService.CreateOwner) owner.GET("/:id" , ownerService.GetOwner) owner.PUT("/:id" , ownerService.UpdateOwner) owner.DELETE("/:id" , ownerService.RemoveOwner) } func LicenseRoutes(e *echo.Echo) { db := database.Db() license := e.Group("/license") licenseCommandRepo := &license_repository.LicenseCommandRepository{DB: &db} licenseQueryRepo := &license_repository.LicenseQueryRepository{DB: &db} licenseService := &services.LicenseService{ CommandRepo: *licenseCommandRepo, QueryRepo: *licenseQueryRepo, } license.POST("/",licenseService.CreateLicense) license.GET("/:id" , licenseService.GetLicense) license.PUT("/:id" , licenseService.UpdateLicense) license.DELETE("/:id" , licenseService.RemoveLicense) } func PlanRoutes(e *echo.Echo) { db := database.Db() plan := e.Group("/plan") planCommandRepo := &plan_repository.PlanCommandRepository{DB: &db} planQueryRepo := &plan_repository.PlanQueryRepository{DB: &db} planService := &services.PlanService{ CommandRepo: *planCommandRepo, QueryRepo: *planQueryRepo, } plan.POST("/",planService.CreatePlan) plan.GET("/:id" , planService.GetPlan) plan.PUT("/:id" , planService.UpdatePlan) plan.DELETE("/:id" , planService.RemovePlan) } func StoreRoutes(e *echo.Echo) { db := database.Db() store := e.Group("/store") storeCommandRepo := &store_repository.StoreCommandRepository{DB: &db} storeQueryRepo := &store_repository.StoreQueryRepository{DB: &db} storeService := &services.StoreService{ CommandRepo: *storeCommandRepo, QueryRepo: *storeQueryRepo, } store.POST("/",storeService.CreateStore) store.GET("/:id" , storeService.GetStore) store.GET("/owner/:id" , storeService.GetStoresList) store.PUT("/:id" , storeService.UpdateStore) store.DELETE("/:id" , storeService.RemoveStore) }