import request from './request'; let productAnalysisMetaInFlight = null; const productAnalysisProductsInFlight = new Map(); export const getProductAnalysisMeta = () => { if (!productAnalysisMetaInFlight) { productAnalysisMetaInFlight = request.get('/api/product-analysis/meta') .finally(() => { productAnalysisMetaInFlight = null; }); } return productAnalysisMetaInFlight; }; export const getProductAnalysisSignalThresholds = () => ( request.get('/api/product-analysis/signal-thresholds', { silentError: true }) ); export const saveProductAnalysisSignalThresholds = (thresholds) => ( request.put('/api/product-analysis/signal-thresholds', { thresholds }, { silentError: true }) ); export const getDevelopmentDashboard = (params, config = {}) => ( request.get('/api/product-analysis/dashboard', { ...config, params }) ); export const getProductAnalysisProducts = (params) => { const requestKey = JSON.stringify(params || {}); if (!productAnalysisProductsInFlight.has(requestKey)) { const inFlight = request.get('/api/product-analysis/products', { params }) .finally(() => { productAnalysisProductsInFlight.delete(requestKey); }); productAnalysisProductsInFlight.set(requestKey, inFlight); } return productAnalysisProductsInFlight.get(requestKey); }; export const getProductAnalysisTab = (goodsId, tabKey, params) => ( request.get(`/api/product-analysis/products/${encodeURIComponent(goodsId)}/tabs/${tabKey}`, { params }) );