package repository

import (
	"context"

	"github.com/pingcap/dbaas/central/db/dbutil"
	"github.com/pingcap/dbaas/central/db/entity"
)

type ClusterRepository interface {
	DeleteClusterAndMakeFinalBackup(ctx context.Context, clusterID entity.ID) error
	QueryClusters(ctx context.Context, filter dbutil.ClusterFilter) ([]entity.Cluster, error)
	DeleteClusters(ctx context.Context, clusterIDs []entity.ID) error
	DeleteBackupsByClusterIDs(ctx context.Context, clusterIDs []entity.ID) error
}

type ClusterTrafficUsageRepository interface {
	LoadByPeriod(ctx context.Context, clusterID entity.ID, period string) (*entity.ClusterTrafficUsage, error)
	Save(ctx context.Context, en *entity.ClusterTrafficUsage) error
	SumUsageByTenant(ctx context.Context, tenantID entity.ID, period string) (ingressUsage, egressUsage int64, err error)
}
