package repository

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

// UserRepository 用户仓储接口（Output Port）
type UserRepository interface {
	// Create 创建用户
	Create(ctx context.Context, user *entity.User) error

	// GetByID 根据 ID 获取用户
	GetByID(ctx context.Context, id string) (*entity.User, error)

	// GetByUsername 根据用户名获取用户
	GetByUsername(ctx context.Context, username string) (*entity.User, error)

	// Update 更新用户
	Update(ctx context.Context, user *entity.User) error

	// Delete 删除用户
	Delete(ctx context.Context, id string) error

	// List 列出所有用户
	List(ctx context.Context) ([]*entity.User, error)
}
