package agate

import "errors"

// Определяем стандартные ошибки, которые могут возникать при работе со снапшотами.
// Использование стандартных переменных ошибок позволяет легко проверять тип ошибки
// с помощью errors.Is().
var (
	// ErrNotFound означает, что снапшот с указанным ID не найден.
	ErrNotFound = errors.New("snapshot not found")

	// ErrAlreadyExists означает, что снапшот с таким ID или именем уже существует
	// (если требуется уникальность имен).
	ErrAlreadyExists = errors.New("snapshot already exists")

	// ErrInvalidID означает, что предоставленный ID имеет неверный формат (например, не UUID).
	ErrInvalidID = errors.New("invalid snapshot ID format")

	// ErrParentNotFound означает, что указанный родительский снапшот (ParentID) не найден.
	ErrParentNotFound = errors.New("parent snapshot not found")

	// ErrSourceNotFound означает, что исходный путь (директория или файл) не найден.
	ErrSourceNotFound = errors.New("source path not found")

	// ErrSourceNotDirectory означает, что исходный путь не является директорией.
	ErrSourceNotDirectory = errors.New("source path is not a directory")

	// ErrCreateFailed общая ошибка при создании снапшота.
	ErrCreateFailed = errors.New("failed to create snapshot")

	// ErrDeleteFailed общая ошибка при удалении снапшота.
	ErrDeleteFailed = errors.New("failed to delete snapshot")

	// ErrListFailed общая ошибка при получении списка снапшотов.
	ErrListFailed = errors.New("failed to list snapshots")

	// ErrGetDetailsFailed общая ошибка при получении деталей снапшота.
	ErrGetDetailsFailed = errors.New("failed to get snapshot details")

	// ErrFileNotFound общая ошибка, если файл не найден (может использоваться внутри OpenFile).
	ErrFileNotFound = errors.New("file not found within snapshot")

	// ErrOperationFailed общая ошибка для неудачных операций.
	ErrOperationFailed = errors.New("snapshot operation failed")
)
