// Code generated by MockGen. DO NOT EDIT.
// Source: controller.go
//
// Generated by this command:
//
//	mockgen -typed -source controller.go -package internal -destination mock.go . getter
//

// Package internal is a generated GoMock package.
package internal

import (
	context "context"
	iter "iter"
	reflect "reflect"

	gomock "go.uber.org/mock/gomock"
)

// Mockgetter is a mock of getter interface.
type Mockgetter struct {
	ctrl     *gomock.Controller
	recorder *MockgetterMockRecorder
	isgomock struct{}
}

// MockgetterMockRecorder is the mock recorder for Mockgetter.
type MockgetterMockRecorder struct {
	mock *Mockgetter
}

// NewMockgetter creates a new mock instance.
func NewMockgetter(ctrl *gomock.Controller) *Mockgetter {
	mock := &Mockgetter{ctrl: ctrl}
	mock.recorder = &MockgetterMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *Mockgetter) EXPECT() *MockgetterMockRecorder {
	return m.recorder
}

// GetAuthor mocks base method.
func (m *Mockgetter) GetAuthor(ctx context.Context, authorID int64) ([]byte, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetAuthor", ctx, authorID)
	ret0, _ := ret[0].([]byte)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetAuthor indicates an expected call of GetAuthor.
func (mr *MockgetterMockRecorder) GetAuthor(ctx, authorID any) *MockgetterGetAuthorCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthor", reflect.TypeOf((*Mockgetter)(nil).GetAuthor), ctx, authorID)
	return &MockgetterGetAuthorCall{Call: call}
}

// MockgetterGetAuthorCall wrap *gomock.Call
type MockgetterGetAuthorCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockgetterGetAuthorCall) Return(arg0 []byte, arg1 error) *MockgetterGetAuthorCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockgetterGetAuthorCall) Do(f func(context.Context, int64) ([]byte, error)) *MockgetterGetAuthorCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockgetterGetAuthorCall) DoAndReturn(f func(context.Context, int64) ([]byte, error)) *MockgetterGetAuthorCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// GetAuthorBooks mocks base method.
func (m *Mockgetter) GetAuthorBooks(ctx context.Context, authorID int64) iter.Seq[int64] {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetAuthorBooks", ctx, authorID)
	ret0, _ := ret[0].(iter.Seq[int64])
	return ret0
}

// GetAuthorBooks indicates an expected call of GetAuthorBooks.
func (mr *MockgetterMockRecorder) GetAuthorBooks(ctx, authorID any) *MockgetterGetAuthorBooksCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorBooks", reflect.TypeOf((*Mockgetter)(nil).GetAuthorBooks), ctx, authorID)
	return &MockgetterGetAuthorBooksCall{Call: call}
}

// MockgetterGetAuthorBooksCall wrap *gomock.Call
type MockgetterGetAuthorBooksCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockgetterGetAuthorBooksCall) Return(arg0 iter.Seq[int64]) *MockgetterGetAuthorBooksCall {
	c.Call = c.Call.Return(arg0)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockgetterGetAuthorBooksCall) Do(f func(context.Context, int64) iter.Seq[int64]) *MockgetterGetAuthorBooksCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockgetterGetAuthorBooksCall) DoAndReturn(f func(context.Context, int64) iter.Seq[int64]) *MockgetterGetAuthorBooksCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// GetBook mocks base method.
func (m *Mockgetter) GetBook(ctx context.Context, bookID int64, saveEditions editionsCallback) ([]byte, int64, int64, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetBook", ctx, bookID, saveEditions)
	ret0, _ := ret[0].([]byte)
	ret1, _ := ret[1].(int64)
	ret2, _ := ret[2].(int64)
	ret3, _ := ret[3].(error)
	return ret0, ret1, ret2, ret3
}

// GetBook indicates an expected call of GetBook.
func (mr *MockgetterMockRecorder) GetBook(ctx, bookID, saveEditions any) *MockgetterGetBookCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBook", reflect.TypeOf((*Mockgetter)(nil).GetBook), ctx, bookID, saveEditions)
	return &MockgetterGetBookCall{Call: call}
}

// MockgetterGetBookCall wrap *gomock.Call
type MockgetterGetBookCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockgetterGetBookCall) Return(arg0 []byte, workID, authorID int64, arg3 error) *MockgetterGetBookCall {
	c.Call = c.Call.Return(arg0, workID, authorID, arg3)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockgetterGetBookCall) Do(f func(context.Context, int64, editionsCallback) ([]byte, int64, int64, error)) *MockgetterGetBookCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockgetterGetBookCall) DoAndReturn(f func(context.Context, int64, editionsCallback) ([]byte, int64, int64, error)) *MockgetterGetBookCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// GetSeries mocks base method.
func (m *Mockgetter) GetSeries(ctx context.Context, seriesID int64) (*SeriesResource, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetSeries", ctx, seriesID)
	ret0, _ := ret[0].(*SeriesResource)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetSeries indicates an expected call of GetSeries.
func (mr *MockgetterMockRecorder) GetSeries(ctx, seriesID any) *MockgetterGetSeriesCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSeries", reflect.TypeOf((*Mockgetter)(nil).GetSeries), ctx, seriesID)
	return &MockgetterGetSeriesCall{Call: call}
}

// MockgetterGetSeriesCall wrap *gomock.Call
type MockgetterGetSeriesCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockgetterGetSeriesCall) Return(arg0 *SeriesResource, arg1 error) *MockgetterGetSeriesCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockgetterGetSeriesCall) Do(f func(context.Context, int64) (*SeriesResource, error)) *MockgetterGetSeriesCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockgetterGetSeriesCall) DoAndReturn(f func(context.Context, int64) (*SeriesResource, error)) *MockgetterGetSeriesCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// GetWork mocks base method.
func (m *Mockgetter) GetWork(ctx context.Context, workID int64, saveEditions editionsCallback) ([]byte, int64, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetWork", ctx, workID, saveEditions)
	ret0, _ := ret[0].([]byte)
	ret1, _ := ret[1].(int64)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// GetWork indicates an expected call of GetWork.
func (mr *MockgetterMockRecorder) GetWork(ctx, workID, saveEditions any) *MockgetterGetWorkCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWork", reflect.TypeOf((*Mockgetter)(nil).GetWork), ctx, workID, saveEditions)
	return &MockgetterGetWorkCall{Call: call}
}

// MockgetterGetWorkCall wrap *gomock.Call
type MockgetterGetWorkCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockgetterGetWorkCall) Return(arg0 []byte, authorID int64, arg2 error) *MockgetterGetWorkCall {
	c.Call = c.Call.Return(arg0, authorID, arg2)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockgetterGetWorkCall) Do(f func(context.Context, int64, editionsCallback) ([]byte, int64, error)) *MockgetterGetWorkCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockgetterGetWorkCall) DoAndReturn(f func(context.Context, int64, editionsCallback) ([]byte, int64, error)) *MockgetterGetWorkCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// Recommendations mocks base method.
func (m *Mockgetter) Recommendations(ctx context.Context, page int64) (RecommentationsResource, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Recommendations", ctx, page)
	ret0, _ := ret[0].(RecommentationsResource)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Recommendations indicates an expected call of Recommendations.
func (mr *MockgetterMockRecorder) Recommendations(ctx, page any) *MockgetterRecommendationsCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Recommendations", reflect.TypeOf((*Mockgetter)(nil).Recommendations), ctx, page)
	return &MockgetterRecommendationsCall{Call: call}
}

// MockgetterRecommendationsCall wrap *gomock.Call
type MockgetterRecommendationsCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockgetterRecommendationsCall) Return(arg0 RecommentationsResource, arg1 error) *MockgetterRecommendationsCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockgetterRecommendationsCall) Do(f func(context.Context, int64) (RecommentationsResource, error)) *MockgetterRecommendationsCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockgetterRecommendationsCall) DoAndReturn(f func(context.Context, int64) (RecommentationsResource, error)) *MockgetterRecommendationsCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// Search mocks base method.
func (m *Mockgetter) Search(ctx context.Context, query string) ([]SearchResource, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Search", ctx, query)
	ret0, _ := ret[0].([]SearchResource)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Search indicates an expected call of Search.
func (mr *MockgetterMockRecorder) Search(ctx, query any) *MockgetterSearchCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Search", reflect.TypeOf((*Mockgetter)(nil).Search), ctx, query)
	return &MockgetterSearchCall{Call: call}
}

// MockgetterSearchCall wrap *gomock.Call
type MockgetterSearchCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockgetterSearchCall) Return(arg0 []SearchResource, arg1 error) *MockgetterSearchCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockgetterSearchCall) Do(f func(context.Context, string) ([]SearchResource, error)) *MockgetterSearchCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockgetterSearchCall) DoAndReturn(f func(context.Context, string) ([]SearchResource, error)) *MockgetterSearchCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}
