// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/kweaver-ai/kweaver-core/decision-agent/agent-backend/agent-factory/src/port/driven/idbaccess (interfaces: IProductRepo)
//
// Generated by this command:
//
//	mockgen -package idbaccessmock -destination ./idbaccessmock/product.go github.com/kweaver-ai/kweaver-core/decision-agent/agent-backend/agent-factory/src/port/driven/idbaccess IProductRepo
//

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

import (
	context "context"
	reflect "reflect"

	dapo "github.com/kweaver-ai/kweaver-core/decision-agent/agent-backend/agent-factory/src/infra/persistence/dapo"
	gomock "go.uber.org/mock/gomock"
)

// MockIProductRepo is a mock of IProductRepo interface.
type MockIProductRepo struct {
	ctrl     *gomock.Controller
	recorder *MockIProductRepoMockRecorder
	isgomock struct{}
}

// MockIProductRepoMockRecorder is the mock recorder for MockIProductRepo.
type MockIProductRepoMockRecorder struct {
	mock *MockIProductRepo
}

// NewMockIProductRepo creates a new mock instance.
func NewMockIProductRepo(ctrl *gomock.Controller) *MockIProductRepo {
	mock := &MockIProductRepo{ctrl: ctrl}
	mock.recorder = &MockIProductRepoMockRecorder{mock}
	return mock
}

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

// Create mocks base method.
func (m *MockIProductRepo) Create(ctx context.Context, po *dapo.ProductPo) (string, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Create", ctx, po)
	ret0, _ := ret[0].(string)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Create indicates an expected call of Create.
func (mr *MockIProductRepoMockRecorder) Create(ctx, po any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockIProductRepo)(nil).Create), ctx, po)
}

// Delete mocks base method.
func (m *MockIProductRepo) Delete(ctx context.Context, id int64) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Delete", ctx, id)
	ret0, _ := ret[0].(error)
	return ret0
}

// Delete indicates an expected call of Delete.
func (mr *MockIProductRepoMockRecorder) Delete(ctx, id any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockIProductRepo)(nil).Delete), ctx, id)
}

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

// ExistsByID indicates an expected call of ExistsByID.
func (mr *MockIProductRepoMockRecorder) ExistsByID(ctx, id any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExistsByID", reflect.TypeOf((*MockIProductRepo)(nil).ExistsByID), ctx, id)
}

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

// ExistsByKey indicates an expected call of ExistsByKey.
func (mr *MockIProductRepoMockRecorder) ExistsByKey(ctx, key any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExistsByKey", reflect.TypeOf((*MockIProductRepo)(nil).ExistsByKey), ctx, key)
}

// ExistsByKeyExcludeID mocks base method.
func (m *MockIProductRepo) ExistsByKeyExcludeID(ctx context.Context, key string, id int64) (bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ExistsByKeyExcludeID", ctx, key, id)
	ret0, _ := ret[0].(bool)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ExistsByKeyExcludeID indicates an expected call of ExistsByKeyExcludeID.
func (mr *MockIProductRepoMockRecorder) ExistsByKeyExcludeID(ctx, key, id any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExistsByKeyExcludeID", reflect.TypeOf((*MockIProductRepo)(nil).ExistsByKeyExcludeID), ctx, key, id)
}

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

// ExistsByName indicates an expected call of ExistsByName.
func (mr *MockIProductRepoMockRecorder) ExistsByName(ctx, name any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExistsByName", reflect.TypeOf((*MockIProductRepo)(nil).ExistsByName), ctx, name)
}

// ExistsByNameExcludeID mocks base method.
func (m *MockIProductRepo) ExistsByNameExcludeID(ctx context.Context, name string, id int64) (bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ExistsByNameExcludeID", ctx, name, id)
	ret0, _ := ret[0].(bool)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ExistsByNameExcludeID indicates an expected call of ExistsByNameExcludeID.
func (mr *MockIProductRepoMockRecorder) ExistsByNameExcludeID(ctx, name, id any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExistsByNameExcludeID", reflect.TypeOf((*MockIProductRepo)(nil).ExistsByNameExcludeID), ctx, name, id)
}

// GetByID mocks base method.
func (m *MockIProductRepo) GetByID(ctx context.Context, id int64) (*dapo.ProductPo, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetByID", ctx, id)
	ret0, _ := ret[0].(*dapo.ProductPo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetByID indicates an expected call of GetByID.
func (mr *MockIProductRepoMockRecorder) GetByID(ctx, id any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByID", reflect.TypeOf((*MockIProductRepo)(nil).GetByID), ctx, id)
}

// GetByKey mocks base method.
func (m *MockIProductRepo) GetByKey(ctx context.Context, key string) (*dapo.ProductPo, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetByKey", ctx, key)
	ret0, _ := ret[0].(*dapo.ProductPo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetByKey indicates an expected call of GetByKey.
func (mr *MockIProductRepoMockRecorder) GetByKey(ctx, key any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByKey", reflect.TypeOf((*MockIProductRepo)(nil).GetByKey), ctx, key)
}

// GetByKeys mocks base method.
func (m *MockIProductRepo) GetByKeys(ctx context.Context, keys []string) ([]*dapo.ProductPo, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetByKeys", ctx, keys)
	ret0, _ := ret[0].([]*dapo.ProductPo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetByKeys indicates an expected call of GetByKeys.
func (mr *MockIProductRepoMockRecorder) GetByKeys(ctx, keys any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByKeys", reflect.TypeOf((*MockIProductRepo)(nil).GetByKeys), ctx, keys)
}

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

// GetByNameMapByKeys indicates an expected call of GetByNameMapByKeys.
func (mr *MockIProductRepoMockRecorder) GetByNameMapByKeys(ctx, keys any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByNameMapByKeys", reflect.TypeOf((*MockIProductRepo)(nil).GetByNameMapByKeys), ctx, keys)
}

// List mocks base method.
func (m *MockIProductRepo) List(ctx context.Context, offset, limit int) ([]*dapo.ProductPo, int, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "List", ctx, offset, limit)
	ret0, _ := ret[0].([]*dapo.ProductPo)
	ret1, _ := ret[1].(int)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// List indicates an expected call of List.
func (mr *MockIProductRepoMockRecorder) List(ctx, offset, limit any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockIProductRepo)(nil).List), ctx, offset, limit)
}

// Update mocks base method.
func (m *MockIProductRepo) Update(ctx context.Context, po *dapo.ProductPo) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Update", ctx, po)
	ret0, _ := ret[0].(error)
	return ret0
}

// Update indicates an expected call of Update.
func (mr *MockIProductRepoMockRecorder) Update(ctx, po any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockIProductRepo)(nil).Update), ctx, po)
}
