"""
Модуль для сайдбара
"""
import streamlit as st
from api_client import get_server_info, get_available_parsers
from config import API_PUBLIC_URL


def render_sidebar():
    """Рендер боковой панели"""
    with st.sidebar:
        st.header("ℹ️ Информация1")
        
        # Информация о сервере
        server_info = get_server_info()
        if server_info:
            st.subheader("Сервер")
            st.write(f"PID: {server_info.get('process_id', 'N/A')}")
            st.write(f"CPU ядер: {server_info.get('cpu_cores', 'N/A')}")
            
            # Безопасное форматирование памяти
            memory_mb = server_info.get('memory_mb')
            if memory_mb is not None:
                st.write(f"Память: {memory_mb:.1f} MB")
            else:
                st.write("Память: N/A")
        
        # Доступные парсеры
        parsers = get_available_parsers()
        if parsers:
            st.subheader("Доступные парсеры")
            for parser in parsers:
                st.write(f"• {parser}")
        
        # Навигация по страницам
        st.markdown("---")
        st.subheader("🧭 Навигация")
        
        # Определяем активную страницу
        active_page = st.session_state.get("active_page", 0)
        
        # Кнопка для страницы синхронных парсеров
        if st.button("📊 Синхронные парсеры", key="sidebar_sync_btn", use_container_width=True, type="primary" if active_page == 0 else "secondary"):
            st.session_state.sidebar_sync_clicked = True
            st.rerun()
        
        # Кнопка для страницы асинхронной загрузки
        if st.button("🚀 Асинхронная загрузка", key="sidebar_async_btn", use_container_width=True, type="primary" if active_page == 1 else "secondary"):
            st.session_state.sidebar_async_clicked = True
            st.rerun()
        
        # Кнопка для страницы управления задачами
        if st.button("📋 Управление задачами", key="sidebar_tasks_btn", use_container_width=True, type="primary" if active_page == 2 else "secondary"):
            st.session_state.sidebar_tasks_clicked = True
            st.rerun()


def render_footer():
    """Рендер футера"""
    st.markdown("---")
    st.markdown("### 📚 Документация API")
    st.markdown(f"Полная документация доступна по адресу: {API_PUBLIC_URL}/docs")
    
    # Информация о проекте
    with st.expander("ℹ️ О проекте"):
        st.markdown("""
        **NIN Excel Parsers API** - это веб-сервис для парсинга и обработки Excel-файлов нефтеперерабатывающих заводов.
        
        **Возможности:**
        - 📊 Парсинг сводок ПМ (план и факт)
        - 🏭 Парсинг сводок СА
        - ⛽ Мониторинг топлива
        - ⚡ Мониторинг ТЭР (Топливно-энергетические ресурсы)
        - 🔧 Управление ремонтными работами СА
        - 📋 Мониторинг статусов ремонта СА
        
        **Технологии:**
        - FastAPI
        - Pandas
        - MinIO (S3-совместимое хранилище)
        - Streamlit (веб-интерфейс)
        """)