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

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

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

	comvalobj "github.com/kweaver-ai/kweaver-core/decision-agent/agent-backend/agent-factory/src/domain/valueobject/comvalobj"
	squarereq "github.com/kweaver-ai/kweaver-core/decision-agent/agent-backend/agent-factory/src/driveradapter/api/rdto/square/squarereq"
	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"
)

// MockIReleaseRepo is a mock of IReleaseRepo interface.
type MockIReleaseRepo struct {
	ctrl     *gomock.Controller
	recorder *MockIReleaseRepoMockRecorder
	isgomock struct{}
}

// MockIReleaseRepoMockRecorder is the mock recorder for MockIReleaseRepo.
type MockIReleaseRepoMockRecorder struct {
	mock *MockIReleaseRepo
}

// NewMockIReleaseRepo creates a new mock instance.
func NewMockIReleaseRepo(ctrl *gomock.Controller) *MockIReleaseRepo {
	mock := &MockIReleaseRepo{ctrl: ctrl}
	mock.recorder = &MockIReleaseRepoMockRecorder{mock}
	return mock
}

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

// BeginTx mocks base method.
func (m *MockIReleaseRepo) 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 *MockIReleaseRepoMockRecorder) BeginTx(ctx any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BeginTx", reflect.TypeOf((*MockIReleaseRepo)(nil).BeginTx), ctx)
}

// Create mocks base method.
func (m *MockIReleaseRepo) Create(ctx context.Context, tx *sql.Tx, po *dapo.ReleasePO) (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 *MockIReleaseRepoMockRecorder) Create(ctx, tx, po any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockIReleaseRepo)(nil).Create), ctx, tx, po)
}

// DeleteByAgentID mocks base method.
func (m *MockIReleaseRepo) DeleteByAgentID(ctx context.Context, tx *sql.Tx, agentID string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "DeleteByAgentID", ctx, tx, agentID)
	ret0, _ := ret[0].(error)
	return ret0
}

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

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

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

// GetDB mocks base method.
func (m *MockIReleaseRepo) 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 *MockIReleaseRepoMockRecorder) GetDB() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDB", reflect.TypeOf((*MockIReleaseRepo)(nil).GetDB))
}

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

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

// GetMapByUniqFlags mocks base method.
func (m *MockIReleaseRepo) GetMapByUniqFlags(ctx context.Context, uniqFlags []*comvalobj.DataAgentUniqFlag) (map[string]*dapo.ReleasePO, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetMapByUniqFlags", ctx, uniqFlags)
	ret0, _ := ret[0].(map[string]*dapo.ReleasePO)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// ListRecentAgentForMarket mocks base method.
func (m *MockIReleaseRepo) ListRecentAgentForMarket(ctx context.Context, req squarereq.AgentSquareRecentAgentReq) ([]*dapo.RecentVisitAgentPO, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListRecentAgentForMarket", ctx, req)
	ret0, _ := ret[0].([]*dapo.RecentVisitAgentPO)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

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

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