#!/usr/bin/env python3
"""
Test script to demonstrate the new /performance command functionality.
"""

def demo_performance_ranking():
    """Demo what the performance ranking will look like."""
    print("šŸ† Token Performance Ranking Demo")
    print("=" * 50)
    
    # Mock token performance data (sorted by P&L)
    token_performance = {
        'BTC': {
            'total_pnl': 150.75,
            'pnl_percentage': 5.2,
            'completed_trades': 8,
            'win_rate': 75.0
        },
        'ETH': {
            'total_pnl': 45.30,
            'pnl_percentage': 3.1,
            'completed_trades': 5,
            'win_rate': 60.0
        },
        'SOL': {
            'total_pnl': -25.40,
            'pnl_percentage': -2.8,
            'completed_trades': 3,
            'win_rate': 33.3
        }
    }
    
    sorted_tokens = sorted(
        token_performance.items(),
        key=lambda x: x[1]['total_pnl'],
        reverse=True
    )
    
    print("šŸ† Token Performance Ranking\n")
    
    for i, (token, stats) in enumerate(sorted_tokens, 1):
        # Ranking emoji
        if i == 1:
            rank_emoji = "šŸ„‡"
        elif i == 2:
            rank_emoji = "🄈"
        elif i == 3:
            rank_emoji = "šŸ„‰"
        else:
            rank_emoji = f"#{i}"
        
        # P&L emoji
        pnl_emoji = "🟢" if stats['total_pnl'] >= 0 else "šŸ”“"
        
        print(f"{rank_emoji} {token}")
        print(f"   {pnl_emoji} P&L: ${stats['total_pnl']:,.2f} ({stats['pnl_percentage']:+.1f}%)")
        print(f"   šŸ“Š Trades: {stats['completed_trades']} | Win: {stats['win_rate']:.0f}%")
        print()
    
    # Summary
    total_pnl = sum(stats['total_pnl'] for stats in token_performance.values())
    total_trades = sum(stats['completed_trades'] for stats in token_performance.values())
    total_pnl_emoji = "🟢" if total_pnl >= 0 else "šŸ”“"
    
    print("šŸ’¼ Portfolio Summary:")
    print(f"   {total_pnl_emoji} Total P&L: ${total_pnl:,.2f}")
    print(f"   šŸ“ˆ Tokens Traded: {len(token_performance)}")
    print(f"   šŸ”„ Completed Trades: {total_trades}")
    print()
    print("šŸ’” Usage: /performance BTC for detailed BTC stats")

def demo_detailed_performance():
    """Demo what detailed token performance will look like."""
    print("\nšŸ“Š BTC Detailed Performance Demo")
    print("=" * 50)
    
    # Mock detailed BTC stats
    token_stats = {
        'token': 'BTC',
        'total_pnl': 150.75,
        'pnl_percentage': 5.2,
        'completed_volume': 2900.00,
        'expectancy': 18.84,
        'total_trades': 12,
        'completed_trades': 8,
        'buy_trades': 6,
        'sell_trades': 6,
        'win_rate': 75.0,
        'profit_factor': 3.2,
        'total_wins': 6,
        'total_losses': 2,
        'largest_win': 85.50,
        'largest_loss': 32.20,
        'avg_win': 42.15,
        'avg_loss': 28.75,
        'recent_trades': [
            {
                'side': 'buy',
                'value': 500,
                'timestamp': '2023-12-01T10:30:00',
                'pnl': 0
            },
            {
                'side': 'sell',
                'value': 500,
                'timestamp': '2023-12-01T14:15:00',
                'pnl': 45.20
            },
            {
                'side': 'buy',
                'value': 300,
                'timestamp': '2023-12-01T16:45:00',
                'pnl': 0
            }
        ]
    }
    
    pnl_emoji = "🟢" if token_stats['total_pnl'] >= 0 else "šŸ”“"
    
    print(f"šŸ“Š {token_stats['token']} Detailed Performance\n")
    
    print("šŸ’° P&L Summary:")
    print(f"• {pnl_emoji} Total P&L: ${token_stats['total_pnl']:,.2f} ({token_stats['pnl_percentage']:+.2f}%)")
    print(f"• šŸ’µ Total Volume: ${token_stats['completed_volume']:,.2f}")
    print(f"• šŸ“ˆ Expectancy: ${token_stats['expectancy']:,.2f}")
    print()
    
    print("šŸ“Š Trading Activity:")
    print(f"• Total Trades: {token_stats['total_trades']}")
    print(f"• Completed: {token_stats['completed_trades']}")
    print(f"• Buy Orders: {token_stats['buy_trades']}")
    print(f"• Sell Orders: {token_stats['sell_trades']}")
    print()
    
    print("šŸ† Performance Metrics:")
    print(f"• Win Rate: {token_stats['win_rate']:.1f}%")
    print(f"• Profit Factor: {token_stats['profit_factor']:.2f}")
    print(f"• Wins: {token_stats['total_wins']} | Losses: {token_stats['total_losses']}")
    print()
    
    print("šŸ’” Best/Worst:")
    print(f"• Largest Win: ${token_stats['largest_win']:,.2f}")
    print(f"• Largest Loss: ${token_stats['largest_loss']:,.2f}")
    print(f"• Avg Win: ${token_stats['avg_win']:,.2f}")
    print(f"• Avg Loss: ${token_stats['avg_loss']:,.2f}")
    print()
    
    print("šŸ”„ Recent Trades:")
    for trade in token_stats['recent_trades'][-3:]:
        side_emoji = "🟢" if trade['side'] == 'buy' else "šŸ”“"
        pnl_display = f" | P&L: ${trade['pnl']:.2f}" if trade['pnl'] != 0 else ""
        print(f"• {side_emoji} {trade['side'].upper()} ${trade['value']:,.0f} @ 12/01 10:30{pnl_display}")
    print()
    print("šŸ”„ Use /performance to see all token rankings")

def demo_no_data_scenarios():
    """Demo what happens when there's no trading data."""
    print("\nšŸ“­ No Data Scenarios Demo")
    print("=" * 50)
    
    print("1. No trading data at all:")
    print("šŸ“Š Token Performance\n")
    print("šŸ“­ No trading data available yet.\n")
    print("šŸ’” Performance tracking starts after your first completed trades.")
    print("Use /long or /short to start trading!")
    print()
    
    print("2. No trading history for specific token:")
    print("šŸ“Š SOL Performance\n")
    print("šŸ“­ No trading history found for SOL.\n")
    print("šŸ’” Start trading SOL with:")
    print("• /long SOL 100")
    print("• /short SOL 100")
    print()
    print("šŸ”„ Use /performance to see all token rankings.")
    print()
    
    print("3. Open positions but no completed trades:")
    print("šŸ“Š ETH Performance\n")
    print("ETH has open positions but no completed trades yet\n")
    print("šŸ“ˆ Current Activity:")
    print("• Total Trades: 3")
    print("• Buy Orders: 2")
    print("• Sell Orders: 1")
    print("• Volume: $1,500.00")
    print()
    print("šŸ’” Complete some trades to see P&L statistics!")
    print("šŸ”„ Use /performance to see all token rankings.")

if __name__ == "__main__":
    print("šŸš€ Performance Command Demo")
    print("=" * 60)
    
    demo_performance_ranking()
    demo_detailed_performance() 
    demo_no_data_scenarios()
    
    print("\n" + "=" * 60)
    print("āœ… Key Features:")
    print("• Token performance ranking (best to worst P&L)")
    print("• Detailed stats for specific tokens")
    print("• Win rate, profit factor, expectancy calculations")
    print("• Recent trade history included")
    print("• Mobile-friendly compressed and detailed views")
    print("• Handles cases with no data gracefully")
    print("• Easy navigation between ranking and details")
    print("\nšŸ’” Usage:")
    print("• /performance - Show all token rankings")
    print("• /performance BTC - Show detailed BTC stats")
    print("• /performance ETH - Show detailed ETH stats")