package report

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

func registerRouter(r *gin.RouterGroup, s *ReportService) {
	reportM := r.Group("/reports")
	reportM.POST("/:oid/:cid", s.TouchReport)
	reportM.GET("/:oid/:cid", s.ListReport)

	reportM.GET("/:oid/:cid/:rid", s.GetReport)
	reportM.DELETE("/:oid/:cid/:rid", s.DeleteReport)
	reportM.POST("/:oid/:cid/:rid", s.RebuildReport)

	reportM.GET("/statistics", s.GetReportStatistics)

	reportM.PUT("/:oid/:cid/:rid", s.PutReport)
}

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