# -*- coding: utf-8 -*-
"""
EXEMPLOS DE CONFIGURAÇÕES DE PORTFÓLIO
Diferentes estratégias para diferentes tipos de investidor
"""

import json

# ===================== PERFIS DE PORTFÓLIO =====================

# Perfil 1: CONSERVADOR (Baixo Risco)
PORTFOLIO_CONSERVADOR = {
    "api_key": "sua_api_key_aqui",
    "api_secret": "sua_api_secret_aqui",
    "api_key_testnet": "testnet_key",
    "api_secret_testnet": "testnet_secret",
    "testnet": True,  # COMECE COM TESTNET!
    "moeda_base": "USDT",
    "capital_inicial": 500,
    "tempo_ciclo": 10,  # Mais lento
    "tempo_refresh_tela": 10,
    "timeframe": "15m",
    "variacao_balanceamento": 3.0,  # Menos frequent
    "comissao": 0.1,
    "saldo_minimo": 10,
    "comentario": "Perfil conservador: Moedas consolidadas, rebalanceamento raro",
    "portfolio": [
        {"moeda": "BTC", "percentual": 40, "preco_compra": 42000, "ativa": True},
        {"moeda": "ETH", "percentual": 30, "preco_compra": 2500, "ativa": True},
        {"moeda": "USDC", "percentual": 30, "preco_compra": 1.00, "ativa": True}
    ]
}

# Perfil 2: MODERADO (Risco Médio)
PORTFOLIO_MODERADO = {
    "api_key": "sua_api_key_aqui",
    "api_secret": "sua_api_secret_aqui",
    "api_key_testnet": "testnet_key",
    "api_secret_testnet": "testnet_secret",
    "testnet": True,
    "moeda_base": "USDT",
    "capital_inicial": 1000,
    "tempo_ciclo": 5,
    "tempo_refresh_tela": 5,
    "timeframe": "5m",
    "variacao_balanceamento": 2.0,
    "comissao": 0.1,
    "saldo_minimo": 10,
    "comentario": "Perfil moderado: Mix de moedas consolidadas e altcoins promissoras",
    "portfolio": [
        {"moeda": "BTC", "percentual": 30, "preco_compra": 42000, "ativa": True},
        {"moeda": "ETH", "percentual": 25, "preco_compra": 2500, "ativa": True},
        {"moeda": "BNB", "percentual": 20, "preco_compra": 600, "ativa": True},
        {"moeda": "SOL", "percentual": 15, "preco_compra": 200, "ativa": True},
        {"moeda": "ADA", "percentual": 10, "preco_compra": 1.0, "ativa": True}
    ]
}

# Perfil 3: AGRESSIVO (Risco Alto)
PORTFOLIO_AGRESSIVO = {
    "api_key": "sua_api_key_aqui",
    "api_secret": "sua_api_secret_aqui",
    "api_key_testnet": "testnet_key",
    "api_secret_testnet": "testnet_secret",
    "testnet": True,
    "moeda_base": "USDT",
    "capital_inicial": 2000,
    "tempo_ciclo": 3,  # Mais rápido
    "tempo_refresh_tela": 3,
    "timeframe": "3m",
    "variacao_balanceamento": 1.5,  # Mais frequente
    "comissao": 0.1,
    "saldo_minimo": 5,
    "comentario": "Perfil agressivo: Altcoins diversificadas, rebalanceamento frequente",
    "portfolio": [
        {"moeda": "HBAR", "percentual": 20, "preco_compra": 0.0881, "ativa": True},
        {"moeda": "ADA", "percentual": 20, "preco_compra": 0.95, "ativa": True},
        {"moeda": "DOGE", "percentual": 20, "preco_compra": 0.35, "ativa": True},
        {"moeda": "SOL", "percentual": 15, "preco_compra": 200, "ativa": True},
        {"moeda": "LINK", "percentual": 15, "preco_compra": 25, "ativa": True},
        {"moeda": "XRP", "percentual": 10, "preco_compra": 2.5, "ativa": True}
    ]
}

# Perfil 4: DIVERFICAÇÃO MÁXIMA
PORTFOLIO_DIVERSIFICADO = {
    "api_key": "sua_api_key_aqui",
    "api_secret": "sua_api_secret_aqui",
    "api_key_testnet": "testnet_key",
    "api_secret_testnet": "testnet_secret",
    "testnet": True,
    "moeda_base": "USDT",
    "capital_inicial": 5000,
    "tempo_ciclo": 5,
    "tempo_refresh_tela": 5,
    "timeframe": "5m",
    "variacao_balanceamento": 1.0,
    "comissao": 0.1,
    "saldo_minimo": 15,
    "comentario": "Portfólio com 10 moedas - máxima diversificação",
    "portfolio": [
        {"moeda": "BTC", "percentual": 15, "preco_compra": 42000, "ativa": True},
        {"moeda": "ETH", "percentual": 15, "preco_compra": 2500, "ativa": True},
        {"moeda": "BNB", "percentual": 10, "preco_compra": 600, "ativa": True},
        {"moeda": "SOL", "percentual": 10, "preco_compra": 200, "ativa": True},
        {"moeda": "ADA", "percentual": 10, "preco_compra": 1.0, "ativa": True},
        {"moeda": "XRP", "percentual": 8, "preco_compra": 2.5, "ativa": True},
        {"moeda": "DOGE", "percentual": 8, "preco_compra": 0.35, "ativa": True},
        {"moeda": "LINK", "percentual": 7, "preco_compra": 25, "ativa": True},
        {"moeda": "HBAR", "percentual": 7, "preco_compra": 0.0881, "ativa": True},
        {"moeda": "MATIC", "percentual": 5, "preco_compra": 1.0, "ativa": True}
    ]
}

# Perfil 5: APENAS BLUE CHIPS
PORTFOLIO_BLUE_CHIPS = {
    "api_key": "sua_api_key_aqui",
    "api_secret": "sua_api_secret_aqui",
    "api_key_testnet": "testnet_key",
    "api_secret_testnet": "testnet_secret",
    "testnet": True,
    "moeda_base": "USDT",
    "capital_inicial": 3000,
    "tempo_ciclo": 15,
    "tempo_refresh_tela": 15,
    "timeframe": "1h",
    "variacao_balanceamento": 5.0,  # Muito conservador
    "comissao": 0.1,
    "saldo_minimo": 20,
    "comentario": "Apenas as maiores moedas do mercado - MUITO CONSERVADOR",
    "portfolio": [
        {"moeda": "BTC", "percentual": 50, "preco_compra": 42000, "ativa": True},
        {"moeda": "ETH", "percentual": 30, "preco_compra": 2500, "ativa": True},
        {"moeda": "BNB", "percentual": 20, "preco_compra": 600, "ativa": True}
    ]
}

# Perfil 6: SCALPING (MUITO AGRESSIVO - Testnet only)
PORTFOLIO_SCALPING = {
    "api_key": "sua_api_key_aqui",
    "api_secret": "sua_api_secret_aqui",
    "api_key_testnet": "testnet_key",
    "api_secret_testnet": "testnet_secret",
    "testnet": True,  # FORÇADO TESTNET!
    "moeda_base": "USDT",
    "capital_inicial": 10000,
    "tempo_ciclo": 1,  # MUITO rápido
    "tempo_refresh_tela": 1,
    "timeframe": "1m",
    "variacao_balanceamento": 0.5,  # MUITO frequente
    "comissao": 0.1,
    "saldo_minimo": 5,
    "comentario": "Scalping extremo - USE APENAS EM TESTNET!",
    "portfolio": [
        {"moeda": "HBAR", "percentual": 25, "preco_compra": 0.0881, "ativa": True},
        {"moeda": "DOGE", "percentual": 25, "preco_compra": 0.35, "ativa": True},
        {"moeda": "XRP", "percentual": 25, "preco_compra": 2.5, "ativa": True},
        {"moeda": "SHIB", "percentual": 25, "preco_compra": 0.000015, "ativa": True}
    ]
}

# ===================== FUNÇÕES DE UTILIDADE =====================

def salvar_perfil(nome_arquivo, perfil):
    """Salva um perfil em arquivo JSON"""
    with open(nome_arquivo, 'w', encoding='utf-8') as f:
        json.dump(perfil, f, indent=2, ensure_ascii=False)
    print(f"✓ Perfil salvo em: {nome_arquivo}")

def exibir_perfil(nome, perfil):
    """Exibe informações sobre o perfil"""
    print(f"\n{'='*60}")
    print(f"PERFIL: {nome}")
    print(f"{'='*60}")
    print(f"Comentário: {perfil.get('comentario')}")
    print(f"Capital: ${perfil.get('capital_inicial'):.0f}")
    print(f"Tempo Ciclo: {perfil.get('tempo_ciclo')}s")
    print(f"Variação Balanceamento: {perfil.get('variacao_balanceamento')}%")
    print(f"Timeframe: {perfil.get('timeframe')}")
    print(f"Testnet: {'SIM' if perfil.get('testnet') else 'NÃO'}")
    print(f"\nMoedas ({len([m for m in perfil.get('portfolio', []) if m.get('ativa')])}):")
    
    total_pct = 0
    for moeda in perfil.get('portfolio', []):
        if moeda.get('ativa'):
            print(f"  - {moeda['moeda']:8s} {moeda['percentual']:5.1f}% (entrada: ${moeda['preco_compra']:12.8f})")
            total_pct += moeda['percentual']
    
    print(f"  Total: {total_pct:.1f}%")
    print(f"{'='*60}")

def main():
    """Menu principal"""
    print("\n" + "="*60)
    print("EXEMPLOS DE PORTFÓLIOS - ROBÔ DE BALANCEAMENTO")
    print("="*60)
    
    perfis = {
        '1': ('Conservador', PORTFOLIO_CONSERVADOR, 'conservador'),
        '2': ('Moderado', PORTFOLIO_MODERADO, 'moderado'),
        '3': ('Agressivo', PORTFOLIO_AGRESSIVO, 'agressivo'),
        '4': ('Diversificado', PORTFOLIO_DIVERSIFICADO, 'diversificado'),
        '5': ('Blue Chips', PORTFOLIO_BLUE_CHIPS, 'blue_chips'),
        '6': ('Scalping', PORTFOLIO_SCALPING, 'scalping'),
    }
    
    for chave, (nome, _, _) in perfis.items():
        print(f"{chave}. {nome}")
    
    print("\n0. Exibir todos os perfis")
    print("X. Sair")
    
    escolha = input("\nEscolha uma opção: ").strip().upper()
    
    if escolha == '0':
        # Exibir todos
        for chave, (nome, perfil, _) in perfis.items():
            exibir_perfil(nome, perfil)
    elif escolha == 'X':
        print("Saindo...")
        return
    elif escolha in perfis:
        nome, perfil, arquivo = perfis[escolha]
        exibir_perfil(nome, perfil)
        
        salvar = input(f"\nSalvar este perfil como 'configuracoes_balanceamento.json'? (s/n): ").lower()
        if salvar == 's':
            salvar_perfil('configuracoes_balanceamento.json', perfil)
            print("\n✓ Perfil salvo!")
            print("⚠ IMPORTANTE:")
            print("  1. Edite o arquivo para adicionar suas chaves da API")
            print("  2. Se testnet=True, você pode testar sem dinheiro real")
            print("  3. Quando pronto, rode: python validar_balanceamento.py")
            print("  4. Depois: python interface_graficabalanceamento.py")
    else:
        print("Opção inválida!")

if __name__ == "__main__":
    main()
