import streamlit as st
import plotly.graph_objects as go
import pandas as pd
import numpy as np
import json
from datetime import datetime, timezone, timedelta
from zoneinfo import ZoneInfo
from data_layer.polymarket_elon_tweets import list_elon_tweet_markets, get_market_trades, get_top_holders
from data_layer.smart_money_analyzer import analyze_smart_money_flow
from utils.helpers import get_event_title
from utils.xtracker_fetch import fetch_xtracker_cached
from core.analysis import get_live_deviation_analysis
from utils.polymarket_fetch import fetch_event, extract_yes_buckets, parse_bucket_range
def render_smart_money_tab(matrix=None, meta=None, selected_slug=None, surfaces=None, visual_rule_editor=None):
    st.header("📊 Polymarket — Elon Musk Tweet Markets ONLY")
    st.caption("Live trades + top holders for **elon-musk-of-tweets*** markets")

    df = list_elon_tweet_markets()
    
    if df.empty:
        st.warning("No active Elon Musk tweet markets right now")
    else:
        selected_title = st.selectbox("Choose Market", df["title"].tolist())
        row = df[df["title"] == selected_title].iloc[0]
        
        st.markdown(f"[View on Polymarket]({row['link']}) — Volume 24h: **${row['volume_24h']:,.0f}**")

        col_a, col_b = st.columns(2)
        with col_a:
            st.subheader("Recent Trades (Txns)")
            trades = get_market_trades(row["condition_id"])
            st.dataframe(trades, use_container_width=True, height=500)
        
        with col_b:
            st.subheader("🏆 Top Holders (Buyers/Sellers)")
            holders = get_top_holders(row["condition_id"])
            st.dataframe(holders, use_container_width=True)
        # === NEW: SMART MONEY FLOW ENGINE ===
        st.subheader("🧠 Smart Money Flow Engine (Elon Tweet Markets)")
        flow = analyze_smart_money_flow(row["condition_id"], row["slug"])

        col1, col2, col3 = st.columns(3)
        with col1:
            st.metric("Net Smart Money Flow (k$)", f"{flow['smfi']:+.1f}k", delta=f"{flow['signal']}")
        with col2:
            st.metric("Silent Exit Risk", f"{flow['silent_exit_risk_%']}%")
        with col3:
            st.metric("Yes Smart Inflow", f"{flow['inflow_yes']:.1f}k")

        st.caption("Smart traders = repeat Elon-niche players with high volume. This detects where they are entering vs silently leaving.")

        # Top smart traders table
        if flow["top_smart_traders"]:
            st.dataframe(pd.DataFrame(flow["top_smart_traders"]), use_container_width=True)
