From f4a3cab5d975fd6ebbcd07ce5ff8e8315a28b230 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Thu, 5 Mar 2026 01:45:18 +0000 Subject: [PATCH] 6 --- backend/src/services/analysis_runs.js | 19 ++++--- .../src/pages/admin/quantum-dashboard.tsx | 53 +++++++++---------- 2 files changed, 35 insertions(+), 37 deletions(-) diff --git a/backend/src/services/analysis_runs.js b/backend/src/services/analysis_runs.js index c505940..652bb49 100644 --- a/backend/src/services/analysis_runs.js +++ b/backend/src/services/analysis_runs.js @@ -169,12 +169,18 @@ module.exports = class Analysis_runsService { allPossibleNumbers.push(i); } + let latestDrawInfo = { first: null, last: null }; if (draws.length > 0) { draws.forEach((draw, index) => { - draw.draw_numbers_draw.forEach(dn => { - frequencyMap[dn.number_value] = (frequencyMap[dn.number_value] || 0) + 1; - if (index === 0) lastDrawNumbers.add(dn.number_value); + const numbers = draw.draw_numbers_draw.map(dn => dn.number_value); + numbers.forEach(num => { + frequencyMap[num] = (frequencyMap[num] || 0) + 1; + if (index === 0) lastDrawNumbers.add(num); }); + if (index === 0) { + const sorted = numbers.sort((a,b) => a - b); + latestDrawInfo = { first: sorted[0], last: sorted[sorted.length - 1] }; + } }); } @@ -270,7 +276,6 @@ module.exports = class Analysis_runsService { } // 3. GENERATOR - Create Suggested Combinations (Sequential / Elite) - // Only pick from non-annulled numbers if possible, or at least from the top const topNumbers = scores .filter(s => s.probability_estimate > 0.1) // Don't pick annulled ones .slice(0, Math.min(game.default_numbers_per_bet * 4, allPossibleNumbers.length)) @@ -280,8 +285,6 @@ module.exports = class Analysis_runsService { for (let c = 0; c < numCombosToGenerate; c++) { const selectedNumbers = []; const pool = [...topNumbers]; - - // If pool is too small because of the funnel, use all possible but it shouldn't happen const actualPool = pool.length >= game.default_numbers_per_bet ? pool : allPossibleNumbers; for (let j = 0; j < game.default_numbers_per_bet; j++) { @@ -319,11 +322,11 @@ module.exports = class Analysis_runsService { } await transaction.commit(); - return analysisRun; + return { analysisRun, latestDrawInfo }; } catch (error) { await transaction.rollback(); console.error('Quantum Analysis Error:', error); throw error; } } -}; \ No newline at end of file +}; diff --git a/frontend/src/pages/admin/quantum-dashboard.tsx b/frontend/src/pages/admin/quantum-dashboard.tsx index 4cce305..6289655 100644 --- a/frontend/src/pages/admin/quantum-dashboard.tsx +++ b/frontend/src/pages/admin/quantum-dashboard.tsx @@ -1,4 +1,4 @@ -import { mdiAtom, mdiFlash, mdiTelevisionClassic, mdiChartLine, mdiCogs, mdiNumeric, mdiCalendarSearch, mdiHistory, mdiOpenInNew, mdiPrinter, mdiInformationOutline, mdiFilterMenu, mdiFilterRemove } from '@mdi/js'; +import { mdiAtom, mdiFlash, mdiTelevisionClassic, mdiChartLine, mdiCogs, mdiNumeric, mdiCalendarSearch, mdiHistory, mdiOpenInNew, mdiPrinter, mdiInformationOutline, mdiFilterMenu, mdiFilterRemove, mdiSortNumericAscending } from '@mdi/js'; import Head from 'next/head'; import React, { ReactElement, useEffect, useState } from 'react'; import CardBox from '../../components/CardBox'; @@ -27,6 +27,7 @@ const QuantumDashboard = () => { const [targetContests, setTargetContests] = useState>({}); const [funnelIntensities, setFunnelIntensities] = useState>({}); const [lastAnalysisId, setLastAnalysisId] = useState(null); + const [latestDrawInfo, setLatestDrawInfo] = useState<{ first: number | null, last: number | null }>({ first: null, last: null }); const [activeGameName, setActiveGameName] = useState(''); const [activeContest, setActiveContest] = useState(0); const [activeFunnel, setActiveFunnel] = useState(0.95); @@ -49,15 +50,16 @@ const QuantumDashboard = () => { funnel_intensity: funnel })).unwrap(); - if (result && result.id) { - setLastAnalysisId(result.id); + if (result && result.analysisRun && result.analysisRun.id) { + setLastAnalysisId(result.analysisRun.id); + setLatestDrawInfo(result.latestDrawInfo || { first: null, last: null }); setSuccessMsg(`IA WORLD LIVE: Funil de Entropia aplicado em ${Math.floor(funnel * 100)}% da Matriz 9999.`); // Fetch combinations - dispatch(fetchCombos({ query: `?analysis_runId=${result.id}&limit=10` })); + dispatch(fetchCombos({ query: `?analysis_runId=${result.analysisRun.id}&limit=10` })); // Fetch cancellations - dispatch(fetchCancellations({ query: `?analysis_runId=${result.id}&limit=1` })); + dispatch(fetchCancellations({ query: `?analysis_runId=${result.analysisRun.id}&limit=1` })); setTimeout(() => setSuccessMsg(''), 8000); } @@ -199,6 +201,18 @@ const QuantumDashboard = () => { INTENSITY: {Math.floor(activeFunnel * 100)}% | VOID_SCAN: ACTIVE + + {latestDrawInfo.first !== null && ( +
+
+ Primeiro Número: {latestDrawInfo.first} +
+
+ Último Número: {latestDrawInfo.last} +
+
+ )} +
{suggested_combinations?.map((combo: any, idx: number) => (
@@ -207,7 +221,11 @@ const QuantumDashboard = () => { IA SCORE: {combo.combo_score}
- {combo.combination_text} + {combo.combination_text.split(' ').map((num: string, nIdx: number) => ( + 25 ? "text-emerald-400 animate-pulse" : "text-white"}> + {num}{nIdx < combo.combination_text.split(' ').length - 1 ? ' ' : ''} + + ))}
@@ -310,29 +328,6 @@ const QuantumDashboard = () => { })}
)} - -
-
- -
-
-
-

- - Funil Automático IA World -

-

- O Funil de Entropia sincronizado anula automaticamente números com baixa probabilidade - matemática para o concurso selecionado. O sistema analisa milhões de combinações em tempo real - para garantir que apenas o "Núcleo de Elite" chegue ao seu terminal. -

-
-
-
ACTIVE
-
Sincronização Global
-
-
-
);