package mgmtportal

import (
	"context"

	"github.com/tidbcloud/devops/pkg/service"
	mgmtv1 "github.com/tidbcloud/tidb-management-service/api/spec/tidb_mgmt_service/v1"
)

type MgmtPortalServiceAPI interface {
	ListSpus(ctx context.Context, param *mgmtv1.ListSpusRequest) (*mgmtv1.ListSpusResponse, error)
	CreateSpu(ctx context.Context, param *mgmtv1.CreateSpuRequest) (*mgmtv1.Spu, error)
	ListComputeMus(ctx context.Context, param *mgmtv1.ListComputeMusRequest) (*mgmtv1.ListComputeMusResponse, error)
	ListStorageMus(ctx context.Context, param *mgmtv1.ListStorageMusRequest) (*mgmtv1.ListStorageMusResponse, error)
	ListSkus(ctx context.Context, param *mgmtv1.ListSkusRequest) (*mgmtv1.ListSkusResponse, error)
	CreateSku(ctx context.Context, param *mgmtv1.CreateSkuRequest) (*mgmtv1.Sku, error)
	PatchSku(ctx context.Context) error
	PatchSpu(ctx context.Context) error
}

type MgmtPortalService interface {
	MgmtPortalServiceAPI

	service.Service
}
