// Code generated by MockGen. DO NOT EDIT.
// Source: ./internel/dao/user/user.go

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

import (
	context "context"
	reflect "reflect"
	time "time"

	gomock "github.com/golang/mock/gomock"
	utils "github.com/tidbcloud/account/central/utils"
	entity "github.com/tidbcloud/account/internel/dao/entity"
	dto "github.com/tidbcloud/account/internel/dto"
	gorm "gorm.io/gorm"
)

// MockUserDaoIface is a mock of UserDaoIface interface.
type MockUserDaoIface struct {
	ctrl     *gomock.Controller
	recorder *MockUserDaoIfaceMockRecorder
}

// MockUserDaoIfaceMockRecorder is the mock recorder for MockUserDaoIface.
type MockUserDaoIfaceMockRecorder struct {
	mock *MockUserDaoIface
}

// NewMockUserDaoIface creates a new mock instance.
func NewMockUserDaoIface(ctrl *gomock.Controller) *MockUserDaoIface {
	mock := &MockUserDaoIface{ctrl: ctrl}
	mock.recorder = &MockUserDaoIfaceMockRecorder{mock}
	return mock
}

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

// AddImpersonateUser mocks base method.
func (m *MockUserDaoIface) AddImpersonateUser(ctx context.Context, tx *gorm.DB, userID, orgID uint64) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "AddImpersonateUser", ctx, tx, userID, orgID)
	ret0, _ := ret[0].(error)
	return ret0
}

// AddImpersonateUser indicates an expected call of AddImpersonateUser.
func (mr *MockUserDaoIfaceMockRecorder) AddImpersonateUser(ctx, tx, userID, orgID interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddImpersonateUser", reflect.TypeOf((*MockUserDaoIface)(nil).AddImpersonateUser), ctx, tx, userID, orgID)
}

// CreateUser mocks base method.
func (m *MockUserDaoIface) CreateUser(ctx context.Context, tx *gorm.DB, user *entity.User) (*entity.User, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CreateUser", ctx, tx, user)
	ret0, _ := ret[0].(*entity.User)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// CreateUser indicates an expected call of CreateUser.
func (mr *MockUserDaoIfaceMockRecorder) CreateUser(ctx, tx, user interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateUser", reflect.TypeOf((*MockUserDaoIface)(nil).CreateUser), ctx, tx, user)
}

// CreateUserLandingAction mocks base method.
func (m *MockUserDaoIface) CreateUserLandingAction(ctx context.Context, tx *gorm.DB, userLandingAction *entity.UserLandingAction) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CreateUserLandingAction", ctx, tx, userLandingAction)
	ret0, _ := ret[0].(error)
	return ret0
}

// CreateUserLandingAction indicates an expected call of CreateUserLandingAction.
func (mr *MockUserDaoIfaceMockRecorder) CreateUserLandingAction(ctx, tx, userLandingAction interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateUserLandingAction", reflect.TypeOf((*MockUserDaoIface)(nil).CreateUserLandingAction), ctx, tx, userLandingAction)
}

// DeleteImpersonateUser mocks base method.
func (m *MockUserDaoIface) DeleteImpersonateUser(ctx context.Context, tx *gorm.DB, userID, orgID uint64) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "DeleteImpersonateUser", ctx, tx, userID, orgID)
	ret0, _ := ret[0].(error)
	return ret0
}

// DeleteImpersonateUser indicates an expected call of DeleteImpersonateUser.
func (mr *MockUserDaoIfaceMockRecorder) DeleteImpersonateUser(ctx, tx, userID, orgID interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteImpersonateUser", reflect.TypeOf((*MockUserDaoIface)(nil).DeleteImpersonateUser), ctx, tx, userID, orgID)
}

// DeleteUserInviteToken mocks base method.
func (m *MockUserDaoIface) DeleteUserInviteToken(ctx context.Context, tx *gorm.DB, token string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "DeleteUserInviteToken", ctx, tx, token)
	ret0, _ := ret[0].(error)
	return ret0
}

// DeleteUserInviteToken indicates an expected call of DeleteUserInviteToken.
func (mr *MockUserDaoIfaceMockRecorder) DeleteUserInviteToken(ctx, tx, token interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteUserInviteToken", reflect.TypeOf((*MockUserDaoIface)(nil).DeleteUserInviteToken), ctx, tx, token)
}

// GenUserInviteToken mocks base method.
func (m *MockUserDaoIface) GenUserInviteToken(ctx context.Context, tx *gorm.DB, inviteUserToken entity.UserInviteToken, period time.Duration) (*CreateInviteTokenResp, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GenUserInviteToken", ctx, tx, inviteUserToken, period)
	ret0, _ := ret[0].(*CreateInviteTokenResp)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GenUserInviteToken indicates an expected call of GenUserInviteToken.
func (mr *MockUserDaoIfaceMockRecorder) GenUserInviteToken(ctx, tx, inviteUserToken, period interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GenUserInviteToken", reflect.TypeOf((*MockUserDaoIface)(nil).GenUserInviteToken), ctx, tx, inviteUserToken, period)
}

// GetImpersonatedUser mocks base method.
func (m *MockUserDaoIface) GetImpersonatedUser(ctx context.Context, tx *gorm.DB, userID uint64) (*entity.ImpersonatedUser, bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetImpersonatedUser", ctx, tx, userID)
	ret0, _ := ret[0].(*entity.ImpersonatedUser)
	ret1, _ := ret[1].(bool)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// GetImpersonatedUser indicates an expected call of GetImpersonatedUser.
func (mr *MockUserDaoIfaceMockRecorder) GetImpersonatedUser(ctx, tx, userID interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetImpersonatedUser", reflect.TypeOf((*MockUserDaoIface)(nil).GetImpersonatedUser), ctx, tx, userID)
}

// GetSystemUserByOrgID mocks base method.
func (m *MockUserDaoIface) GetSystemUserByOrgID(ctx context.Context, tx *gorm.DB, orgID uint64) (*entity.User, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetSystemUserByOrgID", ctx, tx, orgID)
	ret0, _ := ret[0].(*entity.User)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetSystemUserByOrgID indicates an expected call of GetSystemUserByOrgID.
func (mr *MockUserDaoIfaceMockRecorder) GetSystemUserByOrgID(ctx, tx, orgID interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSystemUserByOrgID", reflect.TypeOf((*MockUserDaoIface)(nil).GetSystemUserByOrgID), ctx, tx, orgID)
}

// GetUserByEmail mocks base method.
func (m *MockUserDaoIface) GetUserByEmail(ctx context.Context, tx *gorm.DB, email string) (*entity.User, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetUserByEmail", ctx, tx, email)
	ret0, _ := ret[0].(*entity.User)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetUserByEmail indicates an expected call of GetUserByEmail.
func (mr *MockUserDaoIfaceMockRecorder) GetUserByEmail(ctx, tx, email interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserByEmail", reflect.TypeOf((*MockUserDaoIface)(nil).GetUserByEmail), ctx, tx, email)
}

// GetUserByEmailIn mocks base method.
func (m *MockUserDaoIface) GetUserByEmailIn(ctx context.Context, tx *gorm.DB, emails []string) ([]entity.User, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetUserByEmailIn", ctx, tx, emails)
	ret0, _ := ret[0].([]entity.User)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetUserByEmailIn indicates an expected call of GetUserByEmailIn.
func (mr *MockUserDaoIfaceMockRecorder) GetUserByEmailIn(ctx, tx, emails interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserByEmailIn", reflect.TypeOf((*MockUserDaoIface)(nil).GetUserByEmailIn), ctx, tx, emails)
}

// GetUserByID mocks base method.
func (m *MockUserDaoIface) GetUserByID(ctx context.Context, tx *gorm.DB, id uint64) (*entity.User, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetUserByID", ctx, tx, id)
	ret0, _ := ret[0].(*entity.User)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetUserByID indicates an expected call of GetUserByID.
func (mr *MockUserDaoIfaceMockRecorder) GetUserByID(ctx, tx, id interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserByID", reflect.TypeOf((*MockUserDaoIface)(nil).GetUserByID), ctx, tx, id)
}

// GetUserRegistrationLog mocks base method.
func (m *MockUserDaoIface) GetUserRegistrationLog(ctx context.Context, tx *gorm.DB, param RegistrationLogParam) (*entity.RegistrationLog, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetUserRegistrationLog", ctx, tx, param)
	ret0, _ := ret[0].(*entity.RegistrationLog)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetUserRegistrationLog indicates an expected call of GetUserRegistrationLog.
func (mr *MockUserDaoIfaceMockRecorder) GetUserRegistrationLog(ctx, tx, param interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserRegistrationLog", reflect.TypeOf((*MockUserDaoIface)(nil).GetUserRegistrationLog), ctx, tx, param)
}

// IsImpersonatedUserInOrg mocks base method.
func (m *MockUserDaoIface) IsImpersonatedUserInOrg(ctx context.Context, tx *gorm.DB, userID, orgID uint64) (*entity.ImpersonatedUser, bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "IsImpersonatedUserInOrg", ctx, tx, userID, orgID)
	ret0, _ := ret[0].(*entity.ImpersonatedUser)
	ret1, _ := ret[1].(bool)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// IsImpersonatedUserInOrg indicates an expected call of IsImpersonatedUserInOrg.
func (mr *MockUserDaoIfaceMockRecorder) IsImpersonatedUserInOrg(ctx, tx, userID, orgID interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsImpersonatedUserInOrg", reflect.TypeOf((*MockUserDaoIface)(nil).IsImpersonatedUserInOrg), ctx, tx, userID, orgID)
}

// ListRoleBindingUsers mocks base method.
func (m *MockUserDaoIface) ListRoleBindingUsers(ctx context.Context, tx *gorm.DB, filter RoleBindingUserFilter) ([]RoleBindingUser, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListRoleBindingUsers", ctx, tx, filter)
	ret0, _ := ret[0].([]RoleBindingUser)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ListRoleBindingUsers indicates an expected call of ListRoleBindingUsers.
func (mr *MockUserDaoIfaceMockRecorder) ListRoleBindingUsers(ctx, tx, filter interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListRoleBindingUsers", reflect.TypeOf((*MockUserDaoIface)(nil).ListRoleBindingUsers), ctx, tx, filter)
}

// ListUserLandingActions mocks base method.
func (m *MockUserDaoIface) ListUserLandingActions(ctx context.Context, tx *gorm.DB, filter LandingActionFilter) ([]entity.UserLandingAction, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListUserLandingActions", ctx, tx, filter)
	ret0, _ := ret[0].([]entity.UserLandingAction)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ListUserLandingActions indicates an expected call of ListUserLandingActions.
func (mr *MockUserDaoIfaceMockRecorder) ListUserLandingActions(ctx, tx, filter interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUserLandingActions", reflect.TypeOf((*MockUserDaoIface)(nil).ListUserLandingActions), ctx, tx, filter)
}

// ListUsers mocks base method.
func (m *MockUserDaoIface) ListUsers(ctx context.Context, tx *gorm.DB, userIDs []uint64, statuses []entity.UserStatus) ([]entity.User, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListUsers", ctx, tx, userIDs, statuses)
	ret0, _ := ret[0].([]entity.User)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ListUsers indicates an expected call of ListUsers.
func (mr *MockUserDaoIfaceMockRecorder) ListUsers(ctx, tx, userIDs, statuses interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUsers", reflect.TypeOf((*MockUserDaoIface)(nil).ListUsers), ctx, tx, userIDs, statuses)
}

// ListUsersByPage mocks base method.
func (m *MockUserDaoIface) ListUsersByPage(ctx context.Context, tx *gorm.DB, pageParams dto.PageParams) (*utils.Paginator, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListUsersByPage", ctx, tx, pageParams)
	ret0, _ := ret[0].(*utils.Paginator)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ListUsersByPage indicates an expected call of ListUsersByPage.
func (mr *MockUserDaoIfaceMockRecorder) ListUsersByPage(ctx, tx, pageParams interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUsersByPage", reflect.TypeOf((*MockUserDaoIface)(nil).ListUsersByPage), ctx, tx, pageParams)
}

// ListUsersFromRoleBinding mocks base method.
func (m *MockUserDaoIface) ListUsersFromRoleBinding(ctx context.Context, tx *gorm.DB, filter ListUsersFilter) ([]uint64, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListUsersFromRoleBinding", ctx, tx, filter)
	ret0, _ := ret[0].([]uint64)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ListUsersFromRoleBinding indicates an expected call of ListUsersFromRoleBinding.
func (mr *MockUserDaoIfaceMockRecorder) ListUsersFromRoleBinding(ctx, tx, filter interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUsersFromRoleBinding", reflect.TypeOf((*MockUserDaoIface)(nil).ListUsersFromRoleBinding), ctx, tx, filter)
}

// NewUserInviteToken mocks base method.
func (m *MockUserDaoIface) NewUserInviteToken(ctx context.Context, tx *gorm.DB, inviteUserToken entity.UserInviteToken, period time.Duration) (*CreateInviteTokenResp, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "NewUserInviteToken", ctx, tx, inviteUserToken, period)
	ret0, _ := ret[0].(*CreateInviteTokenResp)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// NewUserInviteToken indicates an expected call of NewUserInviteToken.
func (mr *MockUserDaoIfaceMockRecorder) NewUserInviteToken(ctx, tx, inviteUserToken, period interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewUserInviteToken", reflect.TypeOf((*MockUserDaoIface)(nil).NewUserInviteToken), ctx, tx, inviteUserToken, period)
}

// UpdateUserByID mocks base method.
func (m *MockUserDaoIface) UpdateUserByID(ctx context.Context, tx *gorm.DB, user *entity.User) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "UpdateUserByID", ctx, tx, user)
	ret0, _ := ret[0].(error)
	return ret0
}

// UpdateUserByID indicates an expected call of UpdateUserByID.
func (mr *MockUserDaoIfaceMockRecorder) UpdateUserByID(ctx, tx, user interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserByID", reflect.TypeOf((*MockUserDaoIface)(nil).UpdateUserByID), ctx, tx, user)
}

// ValidateUserInviteToken mocks base method.
func (m *MockUserDaoIface) ValidateUserInviteToken(ctx context.Context, tx *gorm.DB, token string, isDelete bool) (*entity.UserInviteToken, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ValidateUserInviteToken", ctx, tx, token, isDelete)
	ret0, _ := ret[0].(*entity.UserInviteToken)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ValidateUserInviteToken indicates an expected call of ValidateUserInviteToken.
func (mr *MockUserDaoIfaceMockRecorder) ValidateUserInviteToken(ctx, tx, token, isDelete interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateUserInviteToken", reflect.TypeOf((*MockUserDaoIface)(nil).ValidateUserInviteToken), ctx, tx, token, isDelete)
}

// ValidateUserInviteTokenIgnoreEmail mocks base method.
func (m *MockUserDaoIface) ValidateUserInviteTokenIgnoreEmail(ctx context.Context, tx *gorm.DB, token string, isDelete bool) (*entity.UserInviteToken, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ValidateUserInviteTokenIgnoreEmail", ctx, tx, token, isDelete)
	ret0, _ := ret[0].(*entity.UserInviteToken)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ValidateUserInviteTokenIgnoreEmail indicates an expected call of ValidateUserInviteTokenIgnoreEmail.
func (mr *MockUserDaoIfaceMockRecorder) ValidateUserInviteTokenIgnoreEmail(ctx, tx, token, isDelete interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateUserInviteTokenIgnoreEmail", reflect.TypeOf((*MockUserDaoIface)(nil).ValidateUserInviteTokenIgnoreEmail), ctx, tx, token, isDelete)
}
