correct sort by market price by adding a back a roll-up market price from skus to product ID during sync
This commit is contained in:
@@ -94,7 +94,15 @@ export const upsertCardCollection = async (db:DBInstance) => {
|
|||||||
with: { set: true, tcgdata: true, prices: true },
|
with: { set: true, tcgdata: true, prices: true },
|
||||||
});
|
});
|
||||||
await client.collections('cards').documents().import(pokemon.map(card => {
|
await client.collections('cards').documents().import(pokemon.map(card => {
|
||||||
const marketPrice = card.tcgdata?.marketPrice ? DollarToInt(card.tcgdata.marketPrice) : null;
|
// Use the NM SKU price matching the card's variant (kept fresh by syncPrices)
|
||||||
|
// Fall back to any NM sku, then to tcgdata price
|
||||||
|
const nmSku = card.prices.find(p => p.condition === 'Near Mint' && p.variant === card.variant)
|
||||||
|
?? card.prices.find(p => p.condition === 'Near Mint');
|
||||||
|
const marketPrice = nmSku?.marketPrice
|
||||||
|
? DollarToInt(nmSku.marketPrice)
|
||||||
|
: card.tcgdata?.marketPrice
|
||||||
|
? DollarToInt(card.tcgdata.marketPrice)
|
||||||
|
: null;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
id: card.cardId.toString(),
|
id: card.cardId.toString(),
|
||||||
|
|||||||
@@ -154,6 +154,7 @@ const updateLatestSales = async (updatedCards: Set<number>) => {
|
|||||||
const start = Date.now();
|
const start = Date.now();
|
||||||
const updatedCards = await syncPrices();
|
const updatedCards = await syncPrices();
|
||||||
await helper.upsertSkuCollection(db);
|
await helper.upsertSkuCollection(db);
|
||||||
|
await helper.upsertCardCollection(db);
|
||||||
//console.log(updatedCards);
|
//console.log(updatedCards);
|
||||||
//console.log(updatedCards.size);
|
//console.log(updatedCards.size);
|
||||||
//await updateLatestSales(updatedCards);
|
//await updateLatestSales(updatedCards);
|
||||||
|
|||||||
Reference in New Issue
Block a user