// ================================================================================
// 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"
	"server/internal/model"
)

type (
	ITag interface {
		// List retrieves a paginated list of tags
		List(ctx context.Context, in *model.TagListIn) (out *model.TagListOut, err error)
		Create(ctx context.Context, in *model.TagAddIn) (out *model.TagCRUDOut, err error)
		Update(ctx context.Context, in *model.TagEditIn) (out *model.TagCRUDOut, err error)
		Delete(ctx context.Context, in *model.TagDelIn) (out *model.TagCRUDOut, err error)
	}
)

var (
	localTag ITag
)

func Tag() ITag {
	if localTag == nil {
		panic("implement not found for interface ITag, forgot register?")
	}
	return localTag
}

func RegisterTag(i ITag) {
	localTag = i
}
