date('c'), 'source'=>'opus5-prospects-today']; // Connexion PG S95 $conn = @pg_connect("host=10.1.0.3 port=5432 dbname=adx_system user=admin password=admin123 connect_timeout=5"); if (!$conn) { http_response_code(503); echo json_encode(['error'=>'db_unreachable', 'source'=>'opus5-prospects-today']); exit; } // 3 compteurs aujourd'hui $out = []; // Ethica $r = @pg_query($conn, "SELECT count(*) as c, max(created_at) as last FROM ethica.medecins_real WHERE created_at::date = CURRENT_DATE"); if ($r) { $row = pg_fetch_assoc($r); $out['ethica_medecins_today'] = (int)$row['c']; $out['ethica_last_created'] = $row['last']; } // weval_leads $r = @pg_query($conn, "SELECT count(*) as c FROM weval_leads WHERE created_at::date = CURRENT_DATE"); if ($r) { $row = pg_fetch_assoc($r); $out['weval_leads_today'] = (int)$row['c']; } // admin.leads $r = @pg_query($conn, "SELECT count(*) as c FROM admin.leads WHERE created_at::date = CURRENT_DATE"); if ($r) { $row = pg_fetch_assoc($r); $out['admin_leads_today'] = (int)$row['c']; } // Total ethica stable (référence) $r = @pg_query($conn, "SELECT count(*) FROM ethica.medecins_real"); if ($r) { $out['ethica_total'] = (int)pg_fetch_result($r, 0, 0); } pg_close($conn); $R['stats'] = $out; $R['total_today'] = ($out['ethica_medecins_today'] ?? 0) + ($out['weval_leads_today'] ?? 0) + ($out['admin_leads_today'] ?? 0); // Response humaine pour le chatbot $R['response'] = sprintf( "Aujourd'hui %s, nos agents ont recensé %d prospects :\n\n- Ethica HCPs: %d nouveaux (total base: %d)\n- WEVAL leads: %d nouveaux\n- Admin leads (B2B): %d nouveaux\n\nTotal: %d prospects recensés aujourd'hui.", date('d/m/Y'), $R['total_today'], $out['ethica_medecins_today'] ?? 0, $out['ethica_total'] ?? 0, $out['weval_leads_today'] ?? 0, $out['admin_leads_today'] ?? 0, $R['total_today'] ); $R['ms'] = round((microtime(true) - $start) * 1000); $R['provider'] = 'opus5-prospects-today-direct-db'; echo json_encode($R, JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE);