// 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: IReleaseHistoryRepo)
//
// Generated by this command:
//
//	mockgen -package idbaccessmock -destination ./idbaccessmock/release_history.go github.com/kweaver-ai/kweaver-core/decision-agent/agent-backend/agent-factory/src/port/driven/idbaccess IReleaseHistoryRepo
//

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

import (
	context "context"
	sql "database/sql"
	reflect "reflect"

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

// MockIReleaseHistoryRepo is a mock of IReleaseHistoryRepo interface.
type MockIReleaseHistoryRepo struct {
	ctrl     *gomock.Controller
	recorder *MockIReleaseHistoryRepoMockRecorder
	isgomock struct{}
}

// MockIReleaseHistoryRepoMockRecorder is the mock recorder for MockIReleaseHistoryRepo.
type MockIReleaseHistoryRepoMockRecorder struct {
	mock *MockIReleaseHistoryRepo
}

// NewMockIReleaseHistoryRepo creates a new mock instance.
func NewMockIReleaseHistoryRepo(ctrl *gomock.Controller) *MockIReleaseHistoryRepo {
	mock := &MockIReleaseHistoryRepo{ctrl: ctrl}
	mock.recorder = &MockIReleaseHistoryRepoMockRecorder{mock}
	return mock
}

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

// BeginTx mocks base method.
func (m *MockIReleaseHistoryRepo) BeginTx(ctx context.Context) (*sql.Tx, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "BeginTx", ctx)
	ret0, _ := ret[0].(*sql.Tx)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

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

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

// GetByAgentIdVersion mocks base method.
func (m *MockIReleaseHistoryRepo) GetByAgentIdVersion(ctx context.Context, agentID, version string) (*dapo.ReleaseHistoryPO, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetByAgentIdVersion", ctx, agentID, version)
	ret0, _ := ret[0].(*dapo.ReleaseHistoryPO)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetByAgentIdVersion indicates an expected call of GetByAgentIdVersion.
func (mr *MockIReleaseHistoryRepoMockRecorder) GetByAgentIdVersion(ctx, agentID, version any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByAgentIdVersion", reflect.TypeOf((*MockIReleaseHistoryRepo)(nil).GetByAgentIdVersion), ctx, agentID, version)
}

// GetDB mocks base method.
func (m *MockIReleaseHistoryRepo) GetDB() *sqlx.DB {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetDB")
	ret0, _ := ret[0].(*sqlx.DB)
	return ret0
}

// GetDB indicates an expected call of GetDB.
func (mr *MockIReleaseHistoryRepoMockRecorder) GetDB() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDB", reflect.TypeOf((*MockIReleaseHistoryRepo)(nil).GetDB))
}

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

// GetLatestVersionByAgentID indicates an expected call of GetLatestVersionByAgentID.
func (mr *MockIReleaseHistoryRepoMockRecorder) GetLatestVersionByAgentID(ctx, agentID any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestVersionByAgentID", reflect.TypeOf((*MockIReleaseHistoryRepo)(nil).GetLatestVersionByAgentID), ctx, agentID)
}

// ListByAgentID mocks base method.
func (m *MockIReleaseHistoryRepo) ListByAgentID(ctx context.Context, agentID string) ([]*dapo.ReleaseHistoryPO, int64, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListByAgentID", ctx, agentID)
	ret0, _ := ret[0].([]*dapo.ReleaseHistoryPO)
	ret1, _ := ret[1].(int64)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// ListByAgentID indicates an expected call of ListByAgentID.
func (mr *MockIReleaseHistoryRepoMockRecorder) ListByAgentID(ctx, agentID any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListByAgentID", reflect.TypeOf((*MockIReleaseHistoryRepo)(nil).ListByAgentID), ctx, agentID)
}
