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

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

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

	conversationmsgreq "github.com/kweaver-ai/kweaver-core/decision-agent/agent-backend/agent-factory/src/driveradapter/api/rdto/conversation_message/conversationmsgreq"
	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"
)

// MockIConversationMsgRepo is a mock of IConversationMsgRepo interface.
type MockIConversationMsgRepo struct {
	ctrl     *gomock.Controller
	recorder *MockIConversationMsgRepoMockRecorder
	isgomock struct{}
}

// MockIConversationMsgRepoMockRecorder is the mock recorder for MockIConversationMsgRepo.
type MockIConversationMsgRepoMockRecorder struct {
	mock *MockIConversationMsgRepo
}

// NewMockIConversationMsgRepo creates a new mock instance.
func NewMockIConversationMsgRepo(ctrl *gomock.Controller) *MockIConversationMsgRepo {
	mock := &MockIConversationMsgRepo{ctrl: ctrl}
	mock.recorder = &MockIConversationMsgRepoMockRecorder{mock}
	return mock
}

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

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

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

// Delete mocks base method.
func (m *MockIConversationMsgRepo) Delete(ctx context.Context, id string) 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 *MockIConversationMsgRepoMockRecorder) Delete(ctx, id any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockIConversationMsgRepo)(nil).Delete), ctx, id)
}

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

// DeleteByAPPKey indicates an expected call of DeleteByAPPKey.
func (mr *MockIConversationMsgRepoMockRecorder) DeleteByAPPKey(ctx, tx, appKey any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteByAPPKey", reflect.TypeOf((*MockIConversationMsgRepo)(nil).DeleteByAPPKey), ctx, tx, appKey)
}

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

// DeleteByConversationID indicates an expected call of DeleteByConversationID.
func (mr *MockIConversationMsgRepoMockRecorder) DeleteByConversationID(ctx, tx, conversationID any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteByConversationID", reflect.TypeOf((*MockIConversationMsgRepo)(nil).DeleteByConversationID), ctx, tx, conversationID)
}

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

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

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

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

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

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

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

// GetRecentMessages mocks base method.
func (m *MockIConversationMsgRepo) GetRecentMessages(ctx context.Context, conversationID string, limit int) ([]*dapo.ConversationMsgPO, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetRecentMessages", ctx, conversationID, limit)
	ret0, _ := ret[0].([]*dapo.ConversationMsgPO)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetRecentMessages indicates an expected call of GetRecentMessages.
func (mr *MockIConversationMsgRepoMockRecorder) GetRecentMessages(ctx, conversationID, limit any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRecentMessages", reflect.TypeOf((*MockIConversationMsgRepo)(nil).GetRecentMessages), ctx, conversationID, limit)
}

// List mocks base method.
func (m *MockIConversationMsgRepo) List(ctx context.Context, req conversationmsgreq.ListReq) ([]*dapo.ConversationMsgPO, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "List", ctx, req)
	ret0, _ := ret[0].([]*dapo.ConversationMsgPO)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// Update mocks base method.
func (m *MockIConversationMsgRepo) Update(ctx context.Context, po *dapo.ConversationMsgPO) 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 *MockIConversationMsgRepoMockRecorder) Update(ctx, po any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockIConversationMsgRepo)(nil).Update), ctx, po)
}
