// ================================================================================
// 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"

	"github.com/gogf/gf/v2/net/ghttp"
)

type (
	IBookRecommendations interface {
		// List 获取推荐列表
		List(ctx context.Context, in *model.BookRecommendationsListIn) (out *model.BookRecommendationsListOut, err error)
		// AppList 获取APP端推荐列表
		AppList(ctx context.Context, in *model.BookRecommendationsListIn) (out *model.BookRecommendationsAppListOut, err error)
		// Create 新增推荐
		Create(ctx context.Context, in *model.BookRecommendationsCreateIn) (out *model.BookRecommendationsCRUDOut, err error)
		// Update 编辑推荐
		Update(ctx context.Context, in *model.BookRecommendationsUpdateIn) (out *model.BookRecommendationsCRUDOut, err error)
		// Delete 删除推荐
		Delete(ctx context.Context, in *model.BookRecommendationsDeleteIn) (out *model.BookRecommendationsCRUDOut, err error)
		// SetStatus 启用/禁用推荐
		SetStatus(ctx context.Context, in *model.BookRecommendationsSetStatusIn) (out *model.BookRecommendationsCRUDOut, err error)
		// SortOrder 设置排序
		SortOrder(ctx context.Context, in *model.BookRecommendationsSortOrderIn) (out *model.BookRecommendationsCRUDOut, err error)
		// UploadCover 上传推荐封面图
		UploadCover(ctx context.Context, file *ghttp.UploadFile) (url string, err error)
	}
)

var (
	localBookRecommendations IBookRecommendations
)

func BookRecommendations() IBookRecommendations {
	if localBookRecommendations == nil {
		panic("implement not found for interface IBookRecommendations, forgot register?")
	}
	return localBookRecommendations
}

func RegisterBookRecommendations(i IBookRecommendations) {
	localBookRecommendations = i
}
