const { readStoreStatus, writeStoreStatus } = require('./storeStatusStore'); const storeStatusCache = new Map(); function normalizeStatusEntry(entry = {}) { const status = Number(entry.teamSearchStatus); const fetchedAt = Number(entry.fetchedAt) || 0; return { teamSearchStatus: Number.isFinite(status) ? status : null, fetchedAt }; } (function bootstrapStoreStatusCache() { try { const cached = readStoreStatus(); Object.entries(cached || {}).forEach(([storeId, entry]) => { if (!storeId) { return; } storeStatusCache.set(String(storeId), normalizeStatusEntry(entry)); }); } catch (error) { console.error('[STORE-STATUS] Bootstrap fehlgeschlagen:', error.message); } })(); function getStoreStatus(storeId) { if (!storeId) { return null; } return storeStatusCache.get(String(storeId)) || null; } function setStoreStatus(storeId, data = {}) { if (!storeId) { return null; } const normalized = normalizeStatusEntry(data); storeStatusCache.set(String(storeId), normalized); return normalized; } function bulkSetStoreStatus(entries = []) { entries.forEach((entry) => { if (!entry || !entry.storeId) { return; } setStoreStatus(entry.storeId, entry); }); } function persistStoreStatusCache() { const payload = {}; storeStatusCache.forEach((value, key) => { payload[key] = value; }); writeStoreStatus(payload); } module.exports = { getStoreStatus, setStoreStatus, bulkSetStoreStatus, persistStoreStatusCache };