// Code generated by MockGen. DO NOT EDIT.
// Source: ./internal/domain/service/billing.go
//
// Generated by this command:
//
//	mockgen -source=./internal/domain/service/billing.go -destination ./internal/domain/service/mock_service/mock_billing.go -package mock_service
//

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

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

	bizerr "github.com/tidbcloud/pkgv2/bizerr"
	constant "github.com/tidbcloud/serverless-service/internal/domain/constant"
	facade "github.com/tidbcloud/serverless-service/internal/domain/facade"
	vo "github.com/tidbcloud/serverless-service/internal/domain/vo"
	tidb_mgmt_servicev1 "github.com/tidbcloud/tidb-management-service/api/spec/tidb_mgmt_service/v1"
	gomock "go.uber.org/mock/gomock"
)

// MockBillingService is a mock of BillingService interface.
type MockBillingService struct {
	ctrl     *gomock.Controller
	recorder *MockBillingServiceMockRecorder
}

// MockBillingServiceMockRecorder is the mock recorder for MockBillingService.
type MockBillingServiceMockRecorder struct {
	mock *MockBillingService
}

// NewMockBillingService creates a new mock instance.
func NewMockBillingService(ctrl *gomock.Controller) *MockBillingService {
	mock := &MockBillingService{ctrl: ctrl}
	mock.recorder = &MockBillingServiceMockRecorder{mock}
	return mock
}

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

// CalculateClusterCostThisMonth mocks base method.
func (m *MockBillingService) CalculateClusterCostThisMonth(ctx context.Context, tenantId uint64, id string, clusterType constant.ClusterType, skuTypes []constant.SkuType, provider, region string) (*facade.CompleteCostExplorerResult, bizerr.BizError) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CalculateClusterCostThisMonth", ctx, tenantId, id, clusterType, skuTypes, provider, region)
	ret0, _ := ret[0].(*facade.CompleteCostExplorerResult)
	ret1, _ := ret[1].(bizerr.BizError)
	return ret0, ret1
}

// CalculateClusterCostThisMonth indicates an expected call of CalculateClusterCostThisMonth.
func (mr *MockBillingServiceMockRecorder) CalculateClusterCostThisMonth(ctx, tenantId, id, clusterType, skuTypes, provider, region any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CalculateClusterCostThisMonth", reflect.TypeOf((*MockBillingService)(nil).CalculateClusterCostThisMonth), ctx, tenantId, id, clusterType, skuTypes, provider, region)
}

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

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

// GetBranchSkuUsage mocks base method.
func (m *MockBillingService) GetBranchSkuUsage(ctx context.Context, branch *vo.Branch) (map[constant.SkuType]float64, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetBranchSkuUsage", ctx, branch)
	ret0, _ := ret[0].(map[constant.SkuType]float64)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// GetCostExplorerServerlessSkuCost mocks base method.
func (m *MockBillingService) GetCostExplorerServerlessSkuCost(cost *facade.CompleteCostExplorerResult) *facade.BillingSubCostExplorerResult {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetCostExplorerServerlessSkuCost", cost)
	ret0, _ := ret[0].(*facade.BillingSubCostExplorerResult)
	return ret0
}

// GetCostExplorerServerlessSkuCost indicates an expected call of GetCostExplorerServerlessSkuCost.
func (mr *MockBillingServiceMockRecorder) GetCostExplorerServerlessSkuCost(cost any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCostExplorerServerlessSkuCost", reflect.TypeOf((*MockBillingService)(nil).GetCostExplorerServerlessSkuCost), cost)
}

// GetEmailTimeRange mocks base method.
func (m *MockBillingService) GetEmailTimeRange() (time.Time, time.Time, string) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetEmailTimeRange")
	ret0, _ := ret[0].(time.Time)
	ret1, _ := ret[1].(time.Time)
	ret2, _ := ret[2].(string)
	return ret0, ret1, ret2
}

// GetEmailTimeRange indicates an expected call of GetEmailTimeRange.
func (mr *MockBillingServiceMockRecorder) GetEmailTimeRange() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEmailTimeRange", reflect.TypeOf((*MockBillingService)(nil).GetEmailTimeRange))
}

// GetSkuStorageUsage mocks base method.
func (m *MockBillingService) GetSkuStorageUsage(ctx context.Context, cluster *tidb_mgmt_servicev1.Cluster) (map[constant.SkuType]float64, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetSkuStorageUsage", ctx, cluster)
	ret0, _ := ret[0].(map[constant.SkuType]float64)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// GetSkuUnitPrices mocks base method.
func (m *MockBillingService) GetSkuUnitPrices(ctx context.Context, provider, region string, tenantId uint64) (map[constant.SkuType]*facade.BillingCharge, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetSkuUnitPrices", ctx, provider, region, tenantId)
	ret0, _ := ret[0].(map[constant.SkuType]*facade.BillingCharge)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetSkuUnitPrices indicates an expected call of GetSkuUnitPrices.
func (mr *MockBillingServiceMockRecorder) GetSkuUnitPrices(ctx, provider, region, tenantId any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSkuUnitPrices", reflect.TypeOf((*MockBillingService)(nil).GetSkuUnitPrices), ctx, provider, region, tenantId)
}

// GetTenantSpendLimitsSettings mocks base method.
func (m *MockBillingService) GetTenantSpendLimitsSettings(ctx context.Context, tenantID uint64, clusterMap map[uint64]*tidb_mgmt_servicev1.Cluster, checkCluster bool) (map[uint64]*facade.ServerlessSpendLimitBizData, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetTenantSpendLimitsSettings", ctx, tenantID, clusterMap, checkCluster)
	ret0, _ := ret[0].(map[uint64]*facade.ServerlessSpendLimitBizData)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetTenantSpendLimitsSettings indicates an expected call of GetTenantSpendLimitsSettings.
func (mr *MockBillingServiceMockRecorder) GetTenantSpendLimitsSettings(ctx, tenantID, clusterMap, checkCluster any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTenantSpendLimitsSettings", reflect.TypeOf((*MockBillingService)(nil).GetTenantSpendLimitsSettings), ctx, tenantID, clusterMap, checkCluster)
}

// HasFreeCreditQuota mocks base method.
func (m *MockBillingService) HasFreeCreditQuota(ctx context.Context, spendlimits map[uint64]*facade.ServerlessSpendLimitBizData) bool {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "HasFreeCreditQuota", ctx, spendlimits)
	ret0, _ := ret[0].(bool)
	return ret0
}

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

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

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

// ValidTenantPlan mocks base method.
func (m *MockBillingService) ValidTenantPlan(ctx context.Context, tenantID uint64) bool {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ValidTenantPlan", ctx, tenantID)
	ret0, _ := ret[0].(bool)
	return ret0
}

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