import { createPostgresPool } from './src/lib/postgres.mjs'; async function main() { const pool = createPostgresPool({ connectionString: process.env.POSTGRES_URL }); const inventoryRows = await pool.query(` SELECT event_id as inventory_id, observed_at, payload FROM intent_inventory_snapshots ORDER BY COALESCE(observed_at, ingested_at) DESC LIMIT 2000 `); const snapshots = inventoryRows.rows.map(r => ({ inventory_id: r.inventory_id, observed_at: r.observed_at, spendable: r.payload?.spendable || {}, })).sort((a,b) => new Date(a.observed_at) - new Date(b.observed_at)); const activeAssetIds = Object.keys(snapshots[0].spendable); const deltas = []; for (let i = 1; i < snapshots.length; i++) { const prev = snapshots[i-1].spendable; const curr = snapshots[i].spendable; const delta = {}; for (const a of activeAssetIds) { const p = BigInt(prev[a] || 0); const c = BigInt(curr[a] || 0); if (c - p !== 0n) delta[a] = (c - p).toString(); } if (Object.keys(delta).length > 0) { deltas.push({ observed_at: snapshots[i].observed_at, delta }); } } console.log("Total deltas:", deltas.length); for (let i = 0; i < Math.min(5, deltas.length); i++) { console.log(deltas[i].observed_at, Object.entries(deltas[i].delta).filter(x => x[1] !== '0')); } process.exit(0); } main().catch(console.error);