import React, { useState, useEffect } from 'react'; import { Users, Server, Activity, ShieldCheck, Power, RefreshCw, Layers } from 'lucide-react'; import { collection, onSnapshot, doc, updateDoc, query, orderBy } from 'firebase/firestore'; import { db } from '../lib/firebase'; import { cn } from '../lib/utils'; import axios from 'axios'; export const MultiAccountManager = ({ userData }: { userData: any }) => { const [clients, setClients] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { const q = query(collection(db, 'users')); const unsub = onSnapshot(q, (snapshot) => { const list: any[] = []; snapshot.forEach(doc => { const user = doc.data(); if (user.mtPlatform === 'deriv_api' || user.metaApiAccountId) { list.push({ id: doc.id, ...user }); } }); setClients(list); setLoading(false); }); return () => unsub(); }, []); const toggleClientEngine = async (clientId: string, currentState: boolean) => { try { await updateDoc(doc(db, 'users', clientId), { 'tradingSettings.engineRunning': !currentState }); } catch (e: any) { console.error("Failed to toggle engine", e); } }; if (loading) { return (

Carregando Clientes...

); } return (

Multi Account Manager

Sistema Centralizado de Execução de Clientes

{clients.length === 0 && (

Nenhum cliente com API configurada encontrado.

)} {clients.map(client => { const engineRunning = client.tradingSettings?.engineRunning ?? false; const autoTrading = client.tradingSettings?.aiAutoTrading ?? false; const platform = client.mtPlatform === 'deriv_api' ? 'Deriv API' : 'MetaTrader'; const riskSettings = client.tradingSettings?.aiAggressiveness || 'Balanced'; const takeProfit = client.tradingSettings?.takeProfit || 'N/A'; return (
{client.name || client.email} {platform} • ID: {client.id.slice(0, 6)}
{engineRunning ? "Online" : "Offline"}
Confiança Mín.
{client.tradingSettings?.aiMinConfidence || 85}% ({riskSettings})
Max Ordens
{client.tradingSettings?.aiMaxOpenPositions || 2} Ordens
Status IA {autoTrading ? ( ) : ( )}
); })}
); };