import streamlit as st
from config import setup_page_config, API_PUBLIC_URL
from api_client import check_api_health
from sidebar import render_sidebar, render_footer
from sync_parsers_page import render_sync_parsers_page
from async_upload_page import render_async_upload_page
from tasks_page import render_tasks_page

# Конфигурация страницы
setup_page_config()

def main():
    # Определяем активную страницу для заголовка
    active_page = st.session_state.get("active_page", 0)
    page_titles = {
        0: "Синхронные парсеры",
        1: "Асинхронная загрузка", 
        2: "Управление задачами"
    }
    
    st.title(f"🚀 NIN Excel Parsers API - {page_titles.get(active_page, 'Демонстрация')}")
    st.markdown("---")
    
    # Проверка доступности API
    if not check_api_health():
        st.error(f"❌ API недоступен по адресу {API_PUBLIC_URL}")
        st.info("Убедитесь, что FastAPI сервер запущен")
        return
    
    st.success(f"✅ API доступен по адресу {API_PUBLIC_URL}")
    
    # Обрабатываем клики по кнопкам в сайдбаре ПЕРЕД рендером
    if st.session_state.get("sidebar_sync_clicked", False):
        st.session_state.sidebar_sync_clicked = False
        st.session_state.active_page = 0
    elif st.session_state.get("sidebar_async_clicked", False):
        st.session_state.sidebar_async_clicked = False
        st.session_state.active_page = 1
    elif st.session_state.get("sidebar_tasks_clicked", False):
        st.session_state.sidebar_tasks_clicked = False
        st.session_state.active_page = 2
    
    # Определяем активную страницу
    active_page = st.session_state.get("active_page", 0)
    
    # Боковая панель с информацией и навигацией
    render_sidebar()
    
    # Рендерим соответствующую страницу
    if active_page == 0:
        render_sync_parsers_page()
    elif active_page == 1:
        render_async_upload_page()
    else:
        render_tasks_page()
    
    # Футер
    render_footer()

if __name__ == "__main__":
    main() 