package repository

import (
	"context"

	"github.com/tidbcloud/tidb-management-service/tidb-mgmt-service/domain/entity"
)

type ShadowPoolRepository interface {
	Get(ctx context.Context, id uint64) (*entity.ShadowPool, error)
	Delete(ctx context.Context, id uint64) error
	Create(ctx context.Context, shadowPool *entity.ShadowPool) error
	List(ctx context.Context, filter *ShadowPoolFilter) ([]*entity.ShadowPool, error)
	Update(ctx context.Context, shadowPool *entity.ShadowPool) error
}

type ShadowPoolFilter struct {
	IDs            []uint64
	OrgIDs         []uint64
	ProjectIDs     []uint64
	ServicePlans   []string
	CloudProviders []string
	Regions        []string
	OnlyEnabled    bool
}
