package router

import (
	"kra/internal/plugin/announcement/api"
	"kra/internal/server/middleware"

	"github.com/gin-gonic/gin"
)

// InfoRouter 公告路由
type InfoRouter struct {
	apiInfo *api.InfoApi
}

// NewInfoRouter 创建公告路由
func NewInfoRouter(apiInfo *api.InfoApi) *InfoRouter {
	return &InfoRouter{apiInfo: apiInfo}
}

// Init 初始化 公告 路由信息
func (r *InfoRouter) Init(public *gin.RouterGroup, private *gin.RouterGroup) {
	{
		group := private.Group("info").Use(middleware.OperationRecord())
		group.POST("createInfo", r.apiInfo.CreateInfo)             // 新建公告
		group.DELETE("deleteInfo", r.apiInfo.DeleteInfo)           // 删除公告
		group.DELETE("deleteInfoByIds", r.apiInfo.DeleteInfoByIds) // 批量删除公告
		group.PUT("updateInfo", r.apiInfo.UpdateInfo)              // 更新公告
	}
	{
		group := private.Group("info")
		group.GET("findInfo", r.apiInfo.FindInfo)       // 根据ID获取公告
		group.GET("getInfoList", r.apiInfo.GetInfoList) // 获取公告列表
	}
	{
		group := public.Group("info")
		group.GET("getInfoDataSource", r.apiInfo.GetInfoDataSource) // 获取公告数据源
		group.GET("getInfoPublic", r.apiInfo.GetInfoPublic)         // 获取公告列表
	}
}
