// Package domain contains pure domain models with no external dependencies.
// These types represent the core business concepts of the service.
package domain

import "errors"

// Domain errors - these are business-level errors that should be translated
// to appropriate HTTP status codes by the handler layer.
var (
	// ErrNotFound indicates a requested resource does not exist.
	ErrNotFound = errors.New("not found")

	// ErrPreferencesNotFound indicates no preferences exist for the user.
	ErrPreferencesNotFound = errors.New("preferences not found")

	// ErrInvalidTheme indicates the theme value is not one of light, dark, system.
	ErrInvalidTheme = errors.New("invalid theme: must be one of light, dark, system")

	// ErrInvalidLanguage indicates the language value exceeds 10 characters.
	ErrInvalidLanguage = errors.New("invalid language: must be at most 10 characters")

	// ErrForbidden indicates the user is not authorized for this operation.
	ErrForbidden = errors.New("forbidden")
)
