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

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

import (
	context "context"
	reflect "reflect"

	bizerr "github.com/tidbcloud/pkgv2/bizerr"
	facade "github.com/tidbcloud/serverless-service/internal/domain/facade"
	gomock "go.uber.org/mock/gomock"
)

// MockBillingFacade is a mock of BillingFacade interface.
type MockBillingFacade struct {
	ctrl     *gomock.Controller
	recorder *MockBillingFacadeMockRecorder
}

// MockBillingFacadeMockRecorder is the mock recorder for MockBillingFacade.
type MockBillingFacadeMockRecorder struct {
	mock *MockBillingFacade
}

// NewMockBillingFacade creates a new mock instance.
func NewMockBillingFacade(ctrl *gomock.Controller) *MockBillingFacade {
	mock := &MockBillingFacade{ctrl: ctrl}
	mock.recorder = &MockBillingFacadeMockRecorder{mock}
	return mock
}

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

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

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

// CalcFee mocks base method.
func (m *MockBillingFacade) CalcFee(ctx context.Context, reports []*facade.BillingReport) (map[string]*facade.BillingCharge, bizerr.BizError) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CalcFee", ctx, reports)
	ret0, _ := ret[0].(map[string]*facade.BillingCharge)
	ret1, _ := ret[1].(bizerr.BizError)
	return ret0, ret1
}

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

// CalculateCost mocks base method.
func (m *MockBillingFacade) CalculateCost(ctx context.Context, tenantId uint64, costQuery *facade.CostExplorerInternalQuery) (*facade.CostExplorerResult, bizerr.BizError) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CalculateCost", ctx, tenantId, costQuery)
	ret0, _ := ret[0].(*facade.CostExplorerResult)
	ret1, _ := ret[1].(bizerr.BizError)
	return ret0, ret1
}

// CalculateCost indicates an expected call of CalculateCost.
func (mr *MockBillingFacadeMockRecorder) CalculateCost(ctx, tenantId, costQuery any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CalculateCost", reflect.TypeOf((*MockBillingFacade)(nil).CalculateCost), ctx, tenantId, costQuery)
}

// CostExplorerV2 mocks base method.
func (m *MockBillingFacade) CostExplorerV2(ctx context.Context, tenantId uint64, costQuery *facade.CostExplorerInternalQuery) (*facade.CompleteCostExplorerResult, bizerr.BizError) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CostExplorerV2", ctx, tenantId, costQuery)
	ret0, _ := ret[0].(*facade.CompleteCostExplorerResult)
	ret1, _ := ret[1].(bizerr.BizError)
	return ret0, ret1
}

// CostExplorerV2 indicates an expected call of CostExplorerV2.
func (mr *MockBillingFacadeMockRecorder) CostExplorerV2(ctx, tenantId, costQuery any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CostExplorerV2", reflect.TypeOf((*MockBillingFacade)(nil).CostExplorerV2), ctx, tenantId, costQuery)
}

// CreateOrUpdateUnits mocks base method.
func (m *MockBillingFacade) CreateOrUpdateUnits(ctx context.Context, units []*facade.BillingUnit) bizerr.BizError {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CreateOrUpdateUnits", ctx, units)
	ret0, _ := ret[0].(bizerr.BizError)
	return ret0
}

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

// DeleteSpendLimit mocks base method.
func (m *MockBillingFacade) DeleteSpendLimit(ctx context.Context, tenantId, spendLimitSettingId uint64) bizerr.BizError {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "DeleteSpendLimit", ctx, tenantId, spendLimitSettingId)
	ret0, _ := ret[0].(bizerr.BizError)
	return ret0
}

// DeleteSpendLimit indicates an expected call of DeleteSpendLimit.
func (mr *MockBillingFacadeMockRecorder) DeleteSpendLimit(ctx, tenantId, spendLimitSettingId any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSpendLimit", reflect.TypeOf((*MockBillingFacade)(nil).DeleteSpendLimit), ctx, tenantId, spendLimitSettingId)
}

// GetInvoiceLimit mocks base method.
func (m *MockBillingFacade) GetInvoiceLimit(ctx context.Context, tenantId, clusterId uint64) (uint32, bizerr.BizError) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetInvoiceLimit", ctx, tenantId, clusterId)
	ret0, _ := ret[0].(uint32)
	ret1, _ := ret[1].(bizerr.BizError)
	return ret0, ret1
}

// GetInvoiceLimit indicates an expected call of GetInvoiceLimit.
func (mr *MockBillingFacadeMockRecorder) GetInvoiceLimit(ctx, tenantId, clusterId any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetInvoiceLimit", reflect.TypeOf((*MockBillingFacade)(nil).GetInvoiceLimit), ctx, tenantId, clusterId)
}

// GetPackage mocks base method.
func (m *MockBillingFacade) GetPackage(ctx context.Context, id uint64) (*facade.BillingPackage, bizerr.BizError) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetPackage", ctx, id)
	ret0, _ := ret[0].(*facade.BillingPackage)
	ret1, _ := ret[1].(bizerr.BizError)
	return ret0, ret1
}

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

// GetPaymentMethods mocks base method.
func (m *MockBillingFacade) GetPaymentMethods(ctx context.Context, id uint64) ([]*facade.StripePaymentMethod, bizerr.BizError) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetPaymentMethods", ctx, id)
	ret0, _ := ret[0].([]*facade.StripePaymentMethod)
	ret1, _ := ret[1].(bizerr.BizError)
	return ret0, ret1
}

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

// GetSpendLimit mocks base method.
func (m *MockBillingFacade) GetSpendLimit(ctx context.Context, tenantId, clusterId uint64) (*facade.SpendLimitSetting, bizerr.BizError) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetSpendLimit", ctx, tenantId, clusterId)
	ret0, _ := ret[0].(*facade.SpendLimitSetting)
	ret1, _ := ret[1].(bizerr.BizError)
	return ret0, ret1
}

// GetSpendLimit indicates an expected call of GetSpendLimit.
func (mr *MockBillingFacadeMockRecorder) GetSpendLimit(ctx, tenantId, clusterId any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSpendLimit", reflect.TypeOf((*MockBillingFacade)(nil).GetSpendLimit), ctx, tenantId, clusterId)
}

// GetSpendLimitInfo mocks base method.
func (m *MockBillingFacade) GetSpendLimitInfo(ctx context.Context, setting *facade.SpendLimitSetting) (*facade.SpendLimitInfo, bizerr.BizError) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetSpendLimitInfo", ctx, setting)
	ret0, _ := ret[0].(*facade.SpendLimitInfo)
	ret1, _ := ret[1].(bizerr.BizError)
	return ret0, ret1
}

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

// GetSpendLimitSettings mocks base method.
func (m *MockBillingFacade) GetSpendLimitSettings(ctx context.Context, tenantId uint64) ([]*facade.SpendLimitSetting, bizerr.BizError) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetSpendLimitSettings", ctx, tenantId)
	ret0, _ := ret[0].([]*facade.SpendLimitSetting)
	ret1, _ := ret[1].(bizerr.BizError)
	return ret0, ret1
}

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

// GetTenantPlan mocks base method.
func (m *MockBillingFacade) GetTenantPlan(ctx context.Context, id uint64) (*facade.TenantPlanInfo, bizerr.BizError) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetTenantPlan", ctx, id)
	ret0, _ := ret[0].(*facade.TenantPlanInfo)
	ret1, _ := ret[1].(bizerr.BizError)
	return ret0, ret1
}

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

// Measure mocks base method.
func (m *MockBillingFacade) Measure(ctx context.Context, reports []*facade.BillingReport) bizerr.BizError {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Measure", ctx, reports)
	ret0, _ := ret[0].(bizerr.BizError)
	return ret0
}

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

// ModifySpendLimit mocks base method.
func (m *MockBillingFacade) ModifySpendLimit(ctx context.Context, setting *facade.SpendLimitSetting) bizerr.BizError {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ModifySpendLimit", ctx, setting)
	ret0, _ := ret[0].(bizerr.BizError)
	return ret0
}

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

// SendNotification mocks base method.
func (m *MockBillingFacade) SendNotification(ctx context.Context, tenantId uint64, req *facade.BillingNotificationReq) bizerr.BizError {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "SendNotification", ctx, tenantId, req)
	ret0, _ := ret[0].(bizerr.BizError)
	return ret0
}

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

// SetSpendLimit mocks base method.
func (m *MockBillingFacade) SetSpendLimit(ctx context.Context, setting *facade.SpendLimitSetting) bizerr.BizError {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "SetSpendLimit", ctx, setting)
	ret0, _ := ret[0].(bizerr.BizError)
	return ret0
}

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

// UpdatePackage mocks base method.
func (m *MockBillingFacade) UpdatePackage(ctx context.Context, id uint64, pkg *facade.BillingPackage4Update) bizerr.BizError {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "UpdatePackage", ctx, id, pkg)
	ret0, _ := ret[0].(bizerr.BizError)
	return ret0
}

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