package api

import (
	"net/http"

	"git.fabledsword.com/bvandeusen/minstrel/internal/apierror"
)

// handleResearchMissingArt bumps the cover-art version unconditionally
// so every 'none' row becomes eligible at the next enrichment pass.
// Operator's escape hatch when adding a Last.fm key, when an upstream
// provider's catalog has updated, or when verifying a fix without
// waiting for the next scheduled scan.
//
// Existing positively-sourced rows (sidecar/embedded/mbcaa/theaudiodb/
// deezer/lastfm) are not affected — the version-mismatch eligibility
// rule only kicks in for 'none'.
func (h *handlers) handleResearchMissingArt(w http.ResponseWriter, r *http.Request) {
	newVer, err := h.coverSettings.BumpVersion(r.Context())
	if err != nil {
		writeErrWithLog(w, h.logger, "admin: research missing art bump failed", apierror.InternalMsg("bump failed", err))
		return
	}
	writeJSON(w, http.StatusOK, map[string]any{"version": newVer})
}
