// ================================================================================
// 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 (
	IUserFollowAuthor interface {
		// List retrieves a paginated list of user follow authors
		List(ctx context.Context, in *model.UserFollowAuthorListIn) (out *model.UserFollowAuthorListOut, err error)
		// Create adds a new user follow author
		Create(ctx context.Context, in *model.UserFollowAuthorAddIn) (out *model.UserFollowAuthorCRUDOut, err error)
		// Unfollow removes a user follow author by userId and authorId
		Unfollow(ctx context.Context, userId int64, authorId int64) (out *model.UserFollowAuthorCRUDOut, err error)
	}
)

var (
	localUserFollowAuthor IUserFollowAuthor
)

func UserFollowAuthor() IUserFollowAuthor {
	if localUserFollowAuthor == nil {
		panic("implement not found for interface IUserFollowAuthor, forgot register?")
	}
	return localUserFollowAuthor
}

func RegisterUserFollowAuthor(i IUserFollowAuthor) {
	localUserFollowAuthor = i
}
