// ================================================================================
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
// You can delete these comments if you wish manually maintain this interface file.
// ================================================================================

package service

import (
	"context"
	"kami/internal/model"
	"kami/internal/systemV2/model/entity"
)

type (
	IMenu interface {
		// GetMenuTree 挂载数据
		GetMenuTree(ctx context.Context) (resModels []*model.SysAuthRule, err error)
		AddMenu(ctx context.Context, model model.SysAuthRuleInput) (err error)
		UpdateMenu(ctx context.Context, model model.SysAuthRuleWithIDInput) (err error)
		DeleteMenu(ctx context.Context, ID uint) (err error)
		DeleteMenuListByID(ctx context.Context, IDList []uint) (err error)
		// GetMenuListByID 通过ID查找所有的子节点
		GetMenuListByID(ctx context.Context, ID uint) (resModels []entity.V2SysAuthRule, err error)
	}
)

var (
	localMenu IMenu
)

func Menu() IMenu {
	if localMenu == nil {
		panic("implement not found for interface IMenu, forgot register?")
	}
	return localMenu
}

func RegisterMenu(i IMenu) {
	localMenu = i
}
