// Code generated by MockGen. DO NOT EDIT.
// Source: storage.go
//
// Generated by this command:
//
//	mockgen -source=storage.go -package=mock -destination=./mock/storage.go
//

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

import (
	context "context"
	reflect "reflect"

	gomock "go.uber.org/mock/gomock"

	domain "github.com/bucketeer-io/bucketeer/v2/pkg/account/domain"
	mysql "github.com/bucketeer-io/bucketeer/v2/pkg/storage/v2/mysql"
	account "github.com/bucketeer-io/bucketeer/v2/proto/account"
)

// MockAccountStorage is a mock of AccountStorage interface.
type MockAccountStorage struct {
	ctrl     *gomock.Controller
	recorder *MockAccountStorageMockRecorder
}

// MockAccountStorageMockRecorder is the mock recorder for MockAccountStorage.
type MockAccountStorageMockRecorder struct {
	mock *MockAccountStorage
}

// NewMockAccountStorage creates a new mock instance.
func NewMockAccountStorage(ctrl *gomock.Controller) *MockAccountStorage {
	mock := &MockAccountStorage{ctrl: ctrl}
	mock.recorder = &MockAccountStorageMockRecorder{mock}
	return mock
}

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

// CreateAPIKey mocks base method.
func (m *MockAccountStorage) CreateAPIKey(ctx context.Context, k *domain.APIKey, environmentID string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CreateAPIKey", ctx, k, environmentID)
	ret0, _ := ret[0].(error)
	return ret0
}

// CreateAPIKey indicates an expected call of CreateAPIKey.
func (mr *MockAccountStorageMockRecorder) CreateAPIKey(ctx, k, environmentID any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateAPIKey", reflect.TypeOf((*MockAccountStorage)(nil).CreateAPIKey), ctx, k, environmentID)
}

// CreateAccountV2 mocks base method.
func (m *MockAccountStorage) CreateAccountV2(ctx context.Context, a *domain.AccountV2) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CreateAccountV2", ctx, a)
	ret0, _ := ret[0].(error)
	return ret0
}

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

// DeleteAccountV2 mocks base method.
func (m *MockAccountStorage) DeleteAccountV2(ctx context.Context, a *domain.AccountV2) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "DeleteAccountV2", ctx, a)
	ret0, _ := ret[0].(error)
	return ret0
}

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

// GetAPIKey mocks base method.
func (m *MockAccountStorage) GetAPIKey(ctx context.Context, id, environmentID string) (*domain.APIKey, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetAPIKey", ctx, id, environmentID)
	ret0, _ := ret[0].(*domain.APIKey)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// GetAPIKeyByAPIKey mocks base method.
func (m *MockAccountStorage) GetAPIKeyByAPIKey(ctx context.Context, apiKey, environmentID string) (*domain.APIKey, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetAPIKeyByAPIKey", ctx, apiKey, environmentID)
	ret0, _ := ret[0].(*domain.APIKey)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetAPIKeyByAPIKey indicates an expected call of GetAPIKeyByAPIKey.
func (mr *MockAccountStorageMockRecorder) GetAPIKeyByAPIKey(ctx, apiKey, environmentID any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAPIKeyByAPIKey", reflect.TypeOf((*MockAccountStorage)(nil).GetAPIKeyByAPIKey), ctx, apiKey, environmentID)
}

// GetAccountV2 mocks base method.
func (m *MockAccountStorage) GetAccountV2(ctx context.Context, email, organizationID string) (*domain.AccountV2, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetAccountV2", ctx, email, organizationID)
	ret0, _ := ret[0].(*domain.AccountV2)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetAccountV2 indicates an expected call of GetAccountV2.
func (mr *MockAccountStorageMockRecorder) GetAccountV2(ctx, email, organizationID any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAccountV2", reflect.TypeOf((*MockAccountStorage)(nil).GetAccountV2), ctx, email, organizationID)
}

// GetAccountV2ByEnvironmentID mocks base method.
func (m *MockAccountStorage) GetAccountV2ByEnvironmentID(ctx context.Context, email, environmentID string) (*domain.AccountV2, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetAccountV2ByEnvironmentID", ctx, email, environmentID)
	ret0, _ := ret[0].(*domain.AccountV2)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetAccountV2ByEnvironmentID indicates an expected call of GetAccountV2ByEnvironmentID.
func (mr *MockAccountStorageMockRecorder) GetAccountV2ByEnvironmentID(ctx, email, environmentID any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAccountV2ByEnvironmentID", reflect.TypeOf((*MockAccountStorage)(nil).GetAccountV2ByEnvironmentID), ctx, email, environmentID)
}

// GetAccountsWithOrganization mocks base method.
func (m *MockAccountStorage) GetAccountsWithOrganization(ctx context.Context, email string) ([]*domain.AccountWithOrganization, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetAccountsWithOrganization", ctx, email)
	ret0, _ := ret[0].([]*domain.AccountWithOrganization)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// GetAvatarAccountsV2 mocks base method.
func (m *MockAccountStorage) GetAvatarAccountsV2(ctx context.Context, options *mysql.ListOptions) ([]*account.AccountV2, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetAvatarAccountsV2", ctx, options)
	ret0, _ := ret[0].([]*account.AccountV2)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// GetEnvironmentAPIKey mocks base method.
func (m *MockAccountStorage) GetEnvironmentAPIKey(ctx context.Context, apiKey string) (*domain.EnvironmentAPIKey, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetEnvironmentAPIKey", ctx, apiKey)
	ret0, _ := ret[0].(*domain.EnvironmentAPIKey)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// GetSystemAdminAccountV2 mocks base method.
func (m *MockAccountStorage) GetSystemAdminAccountV2(ctx context.Context, email string) (*domain.AccountV2, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetSystemAdminAccountV2", ctx, email)
	ret0, _ := ret[0].(*domain.AccountV2)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// ListAPIKeys mocks base method.
func (m *MockAccountStorage) ListAPIKeys(ctx context.Context, options *mysql.ListOptions) ([]*account.APIKey, int, int64, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListAPIKeys", ctx, options)
	ret0, _ := ret[0].([]*account.APIKey)
	ret1, _ := ret[1].(int)
	ret2, _ := ret[2].(int64)
	ret3, _ := ret[3].(error)
	return ret0, ret1, ret2, ret3
}

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

// ListAccountsV2 mocks base method.
func (m *MockAccountStorage) ListAccountsV2(ctx context.Context, options *mysql.ListOptions) ([]*account.AccountV2, int, int64, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListAccountsV2", ctx, options)
	ret0, _ := ret[0].([]*account.AccountV2)
	ret1, _ := ret[1].(int)
	ret2, _ := ret[2].(int64)
	ret3, _ := ret[3].(error)
	return ret0, ret1, ret2, ret3
}

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

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

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

// UpdateAPIKey mocks base method.
func (m *MockAccountStorage) UpdateAPIKey(ctx context.Context, k *domain.APIKey, environmentID string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "UpdateAPIKey", ctx, k, environmentID)
	ret0, _ := ret[0].(error)
	return ret0
}

// UpdateAPIKey indicates an expected call of UpdateAPIKey.
func (mr *MockAccountStorageMockRecorder) UpdateAPIKey(ctx, k, environmentID any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAPIKey", reflect.TypeOf((*MockAccountStorage)(nil).UpdateAPIKey), ctx, k, environmentID)
}

// UpdateAccountV2 mocks base method.
func (m *MockAccountStorage) UpdateAccountV2(ctx context.Context, a *domain.AccountV2) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "UpdateAccountV2", ctx, a)
	ret0, _ := ret[0].(error)
	return ret0
}

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