// Code generated by MockGen. DO NOT EDIT.
// Source: ./central/repository/cluster.go

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

import (
	context "context"
	reflect "reflect"

	gomock "github.com/golang/mock/gomock"
	dbutil "github.com/tidbcloud/metrics-server/central/db/dbutil"
	entity "github.com/tidbcloud/metrics-server/central/db/entity"
)

// MockClusterRepository is a mock of ClusterRepository interface.
type MockClusterRepository struct {
	ctrl     *gomock.Controller
	recorder *MockClusterRepositoryMockRecorder
}

// MockClusterRepositoryMockRecorder is the mock recorder for MockClusterRepository.
type MockClusterRepositoryMockRecorder struct {
	mock *MockClusterRepository
}

// NewMockClusterRepository creates a new mock instance.
func NewMockClusterRepository(ctrl *gomock.Controller) *MockClusterRepository {
	mock := &MockClusterRepository{ctrl: ctrl}
	mock.recorder = &MockClusterRepositoryMockRecorder{mock}
	return mock
}

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

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

// DeleteBackupsByClusterIDs indicates an expected call of DeleteBackupsByClusterIDs.
func (mr *MockClusterRepositoryMockRecorder) DeleteBackupsByClusterIDs(ctx, clusterIDs interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBackupsByClusterIDs", reflect.TypeOf((*MockClusterRepository)(nil).DeleteBackupsByClusterIDs), ctx, clusterIDs)
}

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

// DeleteClusterAndMakeFinalBackup indicates an expected call of DeleteClusterAndMakeFinalBackup.
func (mr *MockClusterRepositoryMockRecorder) DeleteClusterAndMakeFinalBackup(ctx, clusterID interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteClusterAndMakeFinalBackup", reflect.TypeOf((*MockClusterRepository)(nil).DeleteClusterAndMakeFinalBackup), ctx, clusterID)
}

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

// DeleteClusters indicates an expected call of DeleteClusters.
func (mr *MockClusterRepositoryMockRecorder) DeleteClusters(ctx, clusterIDs interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteClusters", reflect.TypeOf((*MockClusterRepository)(nil).DeleteClusters), ctx, clusterIDs)
}

// QueryClusters mocks base method.
func (m *MockClusterRepository) QueryClusters(ctx context.Context, filter dbutil.ClusterFilter) ([]entity.Cluster, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "QueryClusters", ctx, filter)
	ret0, _ := ret[0].([]entity.Cluster)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// MockClusterTrafficUsageRepository is a mock of ClusterTrafficUsageRepository interface.
type MockClusterTrafficUsageRepository struct {
	ctrl     *gomock.Controller
	recorder *MockClusterTrafficUsageRepositoryMockRecorder
}

// MockClusterTrafficUsageRepositoryMockRecorder is the mock recorder for MockClusterTrafficUsageRepository.
type MockClusterTrafficUsageRepositoryMockRecorder struct {
	mock *MockClusterTrafficUsageRepository
}

// NewMockClusterTrafficUsageRepository creates a new mock instance.
func NewMockClusterTrafficUsageRepository(ctrl *gomock.Controller) *MockClusterTrafficUsageRepository {
	mock := &MockClusterTrafficUsageRepository{ctrl: ctrl}
	mock.recorder = &MockClusterTrafficUsageRepositoryMockRecorder{mock}
	return mock
}

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

// LoadByPeriod mocks base method.
func (m *MockClusterTrafficUsageRepository) LoadByPeriod(ctx context.Context, clusterID entity.ID, period string) (*entity.ClusterTrafficUsage, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "LoadByPeriod", ctx, clusterID, period)
	ret0, _ := ret[0].(*entity.ClusterTrafficUsage)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// LoadByPeriod indicates an expected call of LoadByPeriod.
func (mr *MockClusterTrafficUsageRepositoryMockRecorder) LoadByPeriod(ctx, clusterID, period interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LoadByPeriod", reflect.TypeOf((*MockClusterTrafficUsageRepository)(nil).LoadByPeriod), ctx, clusterID, period)
}

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

// Save indicates an expected call of Save.
func (mr *MockClusterTrafficUsageRepositoryMockRecorder) Save(ctx, en interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Save", reflect.TypeOf((*MockClusterTrafficUsageRepository)(nil).Save), ctx, en)
}

// SumUsageByTenant mocks base method.
func (m *MockClusterTrafficUsageRepository) SumUsageByTenant(ctx context.Context, tenantID entity.ID, period string) (int64, int64, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "SumUsageByTenant", ctx, tenantID, period)
	ret0, _ := ret[0].(int64)
	ret1, _ := ret[1].(int64)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// SumUsageByTenant indicates an expected call of SumUsageByTenant.
func (mr *MockClusterTrafficUsageRepositoryMockRecorder) SumUsageByTenant(ctx, tenantID, period interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SumUsageByTenant", reflect.TypeOf((*MockClusterTrafficUsageRepository)(nil).SumUsageByTenant), ctx, tenantID, period)
}
