package worker

import "errors"

// ErrConflict — операция недопустима в текущем состоянии загрузки (напр. apply
// вне review/deferred, undo вне done). Это нормальный конфликт состояния, а не
// сбой сервера: транспорт матчит его через errors.Is и отвечает 409, не 500.
var ErrConflict = errors.New("conflict")

// ErrNotReady — источник (раздача) присутствует в qBittorrent, но ещё не
// докачан (не в классе classReady), поэтому команда, ведущая к распознаванию
// или раскладке, отклонена: хардлинки на неполные файлы недопустимы. Отдельно
// от ErrConflict (тоже 409), потому что причина actionable — «дождись докачки»
// — и транспорт показывает её конкретным текстом, а не генериком конфликта.
var ErrNotReady = errors.New("source not ready")

// ErrInvalidInput — команда отклонена из-за некорректного пользовательского
// ввода (пустая подсказка, неизвестный тип/провайдер, пустой id, кандидат не из
// текущей рекогниции). Это промах пользователя, а не сбой сервера: транспорт
// матчит его через errors.Is и отвечает 400, а логирующая граница домена пишет
// DEBUG (адресат — пользователь, он уже получил ответ на поверхности).
var ErrInvalidInput = errors.New("invalid input")
