6
This commit is contained in:
parent
2489ed2a44
commit
f4a3cab5d9
@ -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;
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@ -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<Record<string, number>>({});
|
||||
const [funnelIntensities, setFunnelIntensities] = useState<Record<string, number>>({});
|
||||
const [lastAnalysisId, setLastAnalysisId] = useState<string | null>(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
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{latestDrawInfo.first !== null && (
|
||||
<div className="mb-6 flex gap-4 text-xs font-black uppercase tracking-widest">
|
||||
<div className="bg-emerald-900/50 border border-emerald-500/50 p-2 rounded">
|
||||
Primeiro Número: <span className="text-emerald-300 font-mono text-lg">{latestDrawInfo.first}</span>
|
||||
</div>
|
||||
<div className="bg-emerald-900/50 border border-emerald-500/50 p-2 rounded">
|
||||
Último Número: <span className="text-emerald-300 font-mono text-lg">{latestDrawInfo.last}</span>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-4">
|
||||
{suggested_combinations?.map((combo: any, idx: number) => (
|
||||
<div key={combo.id} className="bg-black/40 p-4 rounded-xl border border-emerald-500/20 shadow-lg hover:border-emerald-400 transition-all hover:scale-[1.02] hover:bg-emerald-900/10 cursor-pointer group">
|
||||
@ -207,7 +221,11 @@ const QuantumDashboard = () => {
|
||||
<span className="text-emerald-300 opacity-50 italic">IA SCORE: {combo.combo_score}</span>
|
||||
</div>
|
||||
<div className="text-2xl font-black tracking-tighter text-white font-mono group-hover:text-emerald-400 transition-colors">
|
||||
{combo.combination_text}
|
||||
{combo.combination_text.split(' ').map((num: string, nIdx: number) => (
|
||||
<span key={nIdx} className={parseInt(num) > 25 ? "text-emerald-400 animate-pulse" : "text-white"}>
|
||||
{num}{nIdx < combo.combination_text.split(' ').length - 1 ? ' ' : ''}
|
||||
</span>
|
||||
))}
|
||||
</div>
|
||||
<div className="mt-2 flex justify-between items-center opacity-0 group-hover:opacity-100 transition-opacity">
|
||||
<div className="h-1 bg-emerald-500 rounded-full flex-grow mr-2"></div>
|
||||
@ -310,29 +328,6 @@ const QuantumDashboard = () => {
|
||||
})}
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="mt-12 p-8 bg-slate-900 rounded-3xl text-white relative overflow-hidden shadow-2xl">
|
||||
<div className="absolute top-0 right-0 p-8 opacity-5">
|
||||
<BaseIcon path={mdiTelevisionClassic} size={250} />
|
||||
</div>
|
||||
<div className="relative z-10 flex flex-col md:flex-row items-center justify-between">
|
||||
<div className="mb-6 md:mb-0 max-w-2xl">
|
||||
<h3 className="text-3xl font-black mb-4 uppercase tracking-tighter flex items-center italic text-emerald-400">
|
||||
<BaseIcon path={mdiFilterMenu} className="text-emerald-400 mr-4" size={40} />
|
||||
Funil Automático IA World
|
||||
</h3>
|
||||
<p className="text-slate-300 font-bold uppercase tracking-widest text-xs leading-loose">
|
||||
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.
|
||||
</p>
|
||||
</div>
|
||||
<div className="flex flex-col items-center">
|
||||
<div className="text-6xl font-black text-emerald-400 mb-2 italic tracking-tighter animate-pulse">ACTIVE</div>
|
||||
<div className="text-[10px] font-black uppercase tracking-[0.3em] text-slate-400">Sincronização Global</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</SectionMain>
|
||||
</>
|
||||
);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user