package types

import (
	"fmt"

	clitypes "gitlink.org.cn/cloudream/jcs-pub/client/types"
)

type EmptyBuilder struct {
	Detail clitypes.UserSpaceDetail
}

func (b *EmptyBuilder) FeatureDesc() FeatureDesc {
	return FeatureDesc{}
}
func (b *EmptyBuilder) CreateShardStore() (ShardStore, error) {
	return nil, fmt.Errorf("create shard store for %T: %w", b.Detail.Storage.Type, ErrUnsupported)
}

func (b *EmptyBuilder) CreatePublicStore() (PublicStore, error) {
	return nil, fmt.Errorf("create public store for %T: %w", b.Detail.Storage.Type, ErrUnsupported)
}

func (b *EmptyBuilder) CreateMultiparter() (Multiparter, error) {
	return nil, fmt.Errorf("create multipart initiator for %T: %w", b.Detail.Storage.Type, ErrUnsupported)
}

func (b *EmptyBuilder) CreateS2STransfer() (S2STransfer, error) {
	return nil, fmt.Errorf("create s2s transfer for %T: %w", b.Detail.Storage.Type, ErrUnsupported)
}

func (b *EmptyBuilder) CreateECMultiplier() (ECMultiplier, error) {
	return nil, fmt.Errorf("create ec multiplier for %T: %w", b.Detail.Storage.Type, ErrUnsupported)
}
