package project

import (
	"context"

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

type ProjectServiceAPI interface {
	ListVPCs(ctx context.Context, param *ListVPCsRequest) (*mgmtv1.ListVpcsResponse, error)
	AddSecondaryCidr(ctx context.Context, param *mgmtv1.AddSecondaryCidrRequest) (*dedicatedv1.Vpc, error)
}

type ProjectService interface {
	ProjectServiceAPI

	service.Service
}

type ListVPCsRequest struct {
	OrgID     uint64 `json:"org_id"`
	ProjectID uint64 `json:"project_id"`
	Provider  string `json:"provider"`
	Region    string `json:"region"`
}
