Make PriceCharting runs auditable and pin matches by product id
Two changes aimed at the first real run, since the integration cannot be exercised here without a subscription. Refresh now reports which product each game matched — name, console and the source's id — next to the prices, and dry-run surfaces it before anything is written. This is the failure that would otherwise go unnoticed: a lookup for the DS "Chrono Trigger" resolving to the SNES original returns entirely plausible numbers for the wrong game, and nothing in a bare price would say so. The matched id is then stored on the game, and later refreshes look it up directly instead of repeating the title search. Cheaper, and stable — a search that drifts to a different edition next month cannot silently re-price something that was already matched correctly. IPriceProvider takes an optional sourceId so this stays provider-agnostic. eBay ignores it, having no stable per-product identifier in Browse. 139 backend tests. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -94,6 +94,15 @@ public class Game
|
||||
// re-prices it without another lookup, and the dashboard can answer both
|
||||
// "what is this worth" and "what would it be worth complete".
|
||||
|
||||
/// <summary>
|
||||
/// The price source's identifier for this game, kept after the first match.
|
||||
/// Later refreshes look it up directly instead of repeating a fuzzy search,
|
||||
/// which makes them both cheaper and stable — a title search that drifts to
|
||||
/// a different edition next month would silently re-price the wrong thing.
|
||||
/// </summary>
|
||||
[MaxLength(100)]
|
||||
public string? PriceSourceId { get; set; }
|
||||
|
||||
public decimal? ValueLoose { get; set; }
|
||||
public decimal? ValueCib { get; set; }
|
||||
public decimal? ValueNew { get; set; }
|
||||
|
||||
Reference in New Issue
Block a user