package dbutil

import (
	"github.com/pingcap/errors"
	"github.com/tidbcloud/metrics-server/central/db/entity"
	"gorm.io/gorm"
)

func GetImportByID(tx *gorm.DB, orgID, projectID, clusterID, id entity.ID) (*entity.Import, error) {
	var imp entity.Import
	err := entity.NewImportQuerySet(tx).IDEq(id).ClusterIDEq(clusterID).PreloadCluster().One(&imp)
	if err != nil {
		return nil, errors.Annotate(TagNotFound(err), "GetImportByID")
	}
	err = CheckResourceOrgIDAndProjectID(orgID, imp.Cluster.TenantID, projectID, imp.Cluster.ProjectID)
	if err != nil {
		return nil, err
	}
	return &imp, nil
}
