package repository

import (
	"context"
	"github.com/ocdp/cluster-service/internal/domain/entity"
)

// ClusterRepository 集群仓储接口（Output Port）
type ClusterRepository interface {
	// Create 创建集群
	Create(ctx context.Context, cluster *entity.Cluster) error

	// GetByID 根据 ID 获取集群
	GetByID(ctx context.Context, id string) (*entity.Cluster, error)

	// GetByName 根据名称获取集群
	GetByName(ctx context.Context, name string) (*entity.Cluster, error)

	// Update 更新集群
	Update(ctx context.Context, cluster *entity.Cluster) error

	// Delete 删除集群
	Delete(ctx context.Context, id string) error

	// List 列出所有集群
	List(ctx context.Context) ([]*entity.Cluster, error)
}
