package lidarr

import "errors"

// Sentinel errors. Callers branch on these via errors.Is, not on
// HTTP status codes — the client maps codes to errors.
var (
	ErrUnreachable    = errors.New("lidarr: unreachable")
	ErrAuthFailed     = errors.New("lidarr: auth failed")   // 401 / 403
	ErrLookupFailed   = errors.New("lidarr: lookup failed") // 4xx other than 401/403
	ErrServerError    = errors.New("lidarr: server error")  // 5xx
	ErrInvalidPayload = errors.New("lidarr: invalid payload")
	// ErrNotFound is returned by LookupArtistByMBID and LookupAlbumByMBID
	// when Lidarr returns 200 with an empty array — i.e., the MBID isn't in
	// Lidarr's monitored set. Distinguished from network/auth errors so admin
	// handlers can surface it as `lidarr_album_lookup_failed` (502) instead
	// of `lidarr_unreachable` (503).
	ErrNotFound = errors.New("lidarr: not found")
)
