// Code generated by MockGen. DO NOT EDIT.
// Source: ./pkg/permission/domain/repository/role.go
//
// Generated by this command:
//
//	mockgen -source=./pkg/permission/domain/repository/role.go -destination=./pkg/permission/mock/repository/role.go -package=mock
//

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

import (
	entity "backend/pkg/permission/domain/entity"
	repository "backend/pkg/permission/domain/repository"
	context "context"
	reflect "reflect"

	mongo "go.mongodb.org/mongo-driver/v2/mongo"
	gomock "go.uber.org/mock/gomock"
)

// MockRoleRepository is a mock of RoleRepository interface.
type MockRoleRepository struct {
	ctrl     *gomock.Controller
	recorder *MockRoleRepositoryMockRecorder
	isgomock struct{}
}

// MockRoleRepositoryMockRecorder is the mock recorder for MockRoleRepository.
type MockRoleRepositoryMockRecorder struct {
	mock *MockRoleRepository
}

// NewMockRoleRepository creates a new mock instance.
func NewMockRoleRepository(ctrl *gomock.Controller) *MockRoleRepository {
	mock := &MockRoleRepository{ctrl: ctrl}
	mock.recorder = &MockRoleRepositoryMockRecorder{mock}
	return mock
}

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

// Create mocks base method.
func (m *MockRoleRepository) Create(ctx context.Context, role *entity.Role) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Create", ctx, role)
	ret0, _ := ret[0].(error)
	return ret0
}

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

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

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

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

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

// Get mocks base method.
func (m *MockRoleRepository) Get(ctx context.Context, id int64) (*entity.Role, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Get", ctx, id)
	ret0, _ := ret[0].(*entity.Role)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// GetByUID mocks base method.
func (m *MockRoleRepository) GetByUID(ctx context.Context, uid string) (*entity.Role, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetByUID", ctx, uid)
	ret0, _ := ret[0].(*entity.Role)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// GetByUIDs mocks base method.
func (m *MockRoleRepository) GetByUIDs(ctx context.Context, uids []string) ([]*entity.Role, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetByUIDs", ctx, uids)
	ret0, _ := ret[0].([]*entity.Role)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

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

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

// List mocks base method.
func (m *MockRoleRepository) List(ctx context.Context, filter repository.RoleFilter) ([]*entity.Role, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "List", ctx, filter)
	ret0, _ := ret[0].([]*entity.Role)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

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

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

// Page mocks base method.
func (m *MockRoleRepository) Page(ctx context.Context, filter repository.RoleFilter, page, size int) ([]*entity.Role, int64, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Page", ctx, filter, page, size)
	ret0, _ := ret[0].([]*entity.Role)
	ret1, _ := ret[1].(int64)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// Page indicates an expected call of Page.
func (mr *MockRoleRepositoryMockRecorder) Page(ctx, filter, page, size any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Page", reflect.TypeOf((*MockRoleRepository)(nil).Page), ctx, filter, page, size)
}

// Update mocks base method.
func (m *MockRoleRepository) Update(ctx context.Context, role *entity.Role) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Update", ctx, role)
	ret0, _ := ret[0].(error)
	return ret0
}

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