// ================================================================================
// 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 (
	IChapter interface {
		// List retrieves a paginated list of chapters
		List(ctx context.Context, in *model.ChapterListIn) (out *model.ChapterListOut, err error)
		// Create creates a new chapter
		Create(ctx context.Context, in *model.ChapterAddIn) (out *model.ChapterCRUDOut, err error)
		// Update updates an existing chapter
		Update(ctx context.Context, in *model.ChapterEditIn) (out *model.ChapterCRUDOut, err error)
		// Delete deletes a chapter by ID
		Delete(ctx context.Context, in *model.ChapterDelIn) (out *model.ChapterCRUDOut, err error)
		// AppList retrieves chapter list for app without content
		AppList(ctx context.Context, in *model.ChapterAppListIn) (out *model.ChapterAppListOut, err error)
		// AppDetail retrieves chapter detail for app
		AppDetail(ctx context.Context, in *model.ChapterAppDetailIn) (out *model.ChapterAppDetailOut, err error)
		// AppPurchase purchases chapter for app
		AppPurchase(ctx context.Context, in *model.ChapterAppPurchaseIn) (out *model.ChapterAppPurchaseOut, err error)
		// AppProgress uploads reading progress for app
		AppProgress(ctx context.Context, in *model.ChapterAppProgressIn) (out *model.ChapterAppProgressOut, err error)
		// AppBatchProgress uploads batch reading progress for app
		AppBatchProgress(ctx context.Context, in *model.ChapterAppBatchProgressIn) (out *model.ChapterAppProgressOut, err error)
	}
)

var (
	localChapter IChapter
)

func Chapter() IChapter {
	if localChapter == nil {
		panic("implement not found for interface IChapter, forgot register?")
	}
	return localChapter
}

func RegisterChapter(i IChapter) {
	localChapter = i
}
