package oldreport

import (
	"github.com/gin-gonic/gin"
	"go.uber.org/fx"
)

func registerRouter(r *gin.RouterGroup, s *ReportService) {
	computeEngine := r.Group("/compute-engine")
	computeEngine.POST("/:oid/:cid/comparison", s.TouchComparisonReport)
	computeEngine.GET("/:oid/:cid/comparison", s.ListComparisonReport)
	computeEngine.GET("/:oid/:cid/comparison/:rid", s.GetComparisonReport)
	computeEngine.DELETE("/:oid/:cid/comparison/:rid", s.DeleteComparisonReport)

	// computeEngine.POST("/:oid/:cid/diag", s.TouchDiagReport)
	// computeEngine.GET("/:oid/:cid/diag", s.ListDiagReport)
	// computeEngine.GET("/:oid/:cid/diag/:rid", s.GetDiagReport)

	computeEngine.GET("/:oid/:cid/health", s.ListHealthReport)
	computeEngine.GET("/:oid/:cid/health/:rid", s.GetHealthReport)
	computeEngine.DELETE("/:oid/:cid/health/:rid", s.DeleteHealthReport)
	computeEngine.POST("/:oid/:cid/health", s.TouchHealthReport)

	computeEngine.POST("/:oid/:cid/trafficcomparison", s.TouchTrafficComparisonReport)
	computeEngine.GET("/:oid/:cid/trafficcomparison", s.ListTrafficComparisonReport)
	computeEngine.GET("/:oid/:cid/trafficcomparison/:rid", s.GetTrafficComparisonReport)
	computeEngine.DELETE("/:oid/:cid/trafficcomparison/:rid", s.DeleteTrafficComparisonReport)
}

var Module = fx.Options(
	fx.Provide(NewReportService),
	fx.Invoke(registerRouter))
