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")