// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/tidbcloud/aisupport/packages/sdk-go/infra/lark/client/chat (interfaces: Chat)
//
// Generated by this command:
//
//	mockgen -destination chat_mock.go -package=chat github.com/tidbcloud/aisupport/packages/sdk-go/infra/lark/client/chat Chat
//

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

import (
	context "context"
	reflect "reflect"

	larkim "github.com/larksuite/oapi-sdk-go/v3/service/im/v1"
	gomock "go.uber.org/mock/gomock"
)

// MockChat is a mock of Chat interface.
type MockChat struct {
	ctrl     *gomock.Controller
	recorder *MockChatMockRecorder
	isgomock struct{}
}

// MockChatMockRecorder is the mock recorder for MockChat.
type MockChatMockRecorder struct {
	mock *MockChat
}

// NewMockChat creates a new mock instance.
func NewMockChat(ctrl *gomock.Controller) *MockChat {
	mock := &MockChat{ctrl: ctrl}
	mock.recorder = &MockChatMockRecorder{mock}
	return mock
}

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

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

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

// GetChat mocks base method.
func (m *MockChat) GetChat(ctx context.Context, chatId string) (*larkim.Chat, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetChat", ctx, chatId)
	ret0, _ := ret[0].(*larkim.Chat)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// InviteMembers mocks base method.
func (m *MockChat) InviteMembers(ctx context.Context, chatId, memType string, memIDs []string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "InviteMembers", ctx, chatId, memType, memIDs)
	ret0, _ := ret[0].(error)
	return ret0
}

// InviteMembers indicates an expected call of InviteMembers.
func (mr *MockChatMockRecorder) InviteMembers(ctx, chatId, memType, memIDs any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InviteMembers", reflect.TypeOf((*MockChat)(nil).InviteMembers), ctx, chatId, memType, memIDs)
}

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

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

// PutTopicNotice mocks base method.
func (m *MockChat) PutTopicNotice(ctx context.Context, chatID, action, messageID string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "PutTopicNotice", ctx, chatID, action, messageID)
	ret0, _ := ret[0].(error)
	return ret0
}

// PutTopicNotice indicates an expected call of PutTopicNotice.
func (mr *MockChatMockRecorder) PutTopicNotice(ctx, chatID, action, messageID any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutTopicNotice", reflect.TypeOf((*MockChat)(nil).PutTopicNotice), ctx, chatID, action, messageID)
}
