package entity

import "errors"

// 领域错误定义
var (
	// User errors
	ErrInvalidUsername    = errors.New("invalid username")
	ErrInvalidPassword    = errors.New("invalid password")
	ErrUserNotFound       = errors.New("user not found")
	ErrUserExists         = errors.New("user already exists")
	ErrTokenRevoked       = errors.New("token has been revoked")
	ErrUnauthorized       = errors.New("authentication required")
	ErrForbidden          = errors.New("permission denied")
	ErrUserInactive       = errors.New("user is inactive")
	ErrWorkspaceSuspended = errors.New("workspace is suspended")

	// Cluster errors
	ErrInvalidClusterName = errors.New("invalid cluster name")
	ErrInvalidClusterHost = errors.New("invalid cluster host")
	ErrInvalidClusterAuth = errors.New("invalid cluster authentication config")
	ErrClusterNotFound    = errors.New("cluster not found")
	ErrClusterExists      = errors.New("cluster already exists")

	// Registry errors
	ErrInvalidRegistryName = errors.New("invalid registry name")
	ErrInvalidRegistryURL  = errors.New("invalid registry URL")
	ErrRegistryNotFound    = errors.New("registry not found")
	ErrRegistryExists      = errors.New("registry already exists")

	// Instance errors
	ErrInvalidClusterID    = errors.New("invalid cluster ID")
	ErrInvalidInstanceName = errors.New("invalid instance name")
	ErrInvalidNamespace    = errors.New("invalid namespace")
	ErrInvalidChart        = errors.New("invalid chart name")
	ErrInvalidVersion      = errors.New("invalid version")
	ErrInstanceNotFound    = errors.New("instance not found")
	ErrInstanceExists      = errors.New("instance already exists")

	// Artifact errors
	ErrArtifactNotFound     = errors.New("artifact not found")
	ErrRepositoryNotFound   = errors.New("repository not found")
	ErrValuesSchemaNotFound = errors.New("values schema not found")

	// Workspace errors
	ErrWorkspaceNotFound          = errors.New("workspace not found")
	ErrWorkspaceExists            = errors.New("workspace already exists")
	ErrWorkspaceNamespaceConflict = errors.New("workspace namespace conflict")
	ErrUserHasInstances           = errors.New("user has active instances")
	ErrProtectedNamespace         = errors.New("protected namespace")
)
