
import dearpygui.dearpygui as dpg
from src.core.database.managers.session_manager import SessionManager
from src.utils.logger import get_logger

logger = get_logger("session_window")

def create_session_window(db):
    """Окно создания новой сессии"""
    with dpg.window(
        tag="session_window",
        label="New Session",
        no_collapse=True,
        no_resize=True,
        no_close=True,
        no_title_bar=True,
        width=600,      # Увеличена ширина окна
        height=300,     # Увеличена высота окна
        modal=True,     # Добавлен модальный режим
    ):
        dpg.add_text("Создание новое сессии")
        dpg.add_separator()
        
        dpg.add_text("Имя сессии:")
        # Увеличен размер поля ввода
        session_name = dpg.add_input_text(tag="session_name", width=500)
        dpg.add_spacer(height=20)
        
        # Увеличены размеры кнопок
        with dpg.group(horizontal=True):
            dpg.add_button(
                label="Создать",
                callback=lambda: create_session(db, session_name),
                width=150,  # Увеличено с 100
                height=40   # Увеличена высота
            )
            dpg.add_spacer(width=20)
            dpg.add_button(
                label="Отмена",
                callback=lambda: dpg.delete_item("session_window"),
                width=150,  # Увеличено с 100
                height=40   # Увеличена высота
            )
    
    # Центрирование окна после создания
    dpg.split_frame()
    viewport_width = dpg.get_viewport_width()
    viewport_height = dpg.get_viewport_height()
    win_width = dpg.get_item_width("session_window")
    win_height = dpg.get_item_height("session_window")
    dpg.set_item_pos(
        "session_window",
        [(viewport_width - win_width) // 2, (viewport_height - win_height) // 2]
    )


def create_session(db, session_name):
    """Создание новой сессии"""
    name = dpg.get_value(session_name)
    if not name:
        logger.warning("Attempt to create session without name")
        return
    
    session_manager = SessionManager(db)
    session = session_manager.create_session(name)
    
    if session:
        logger.info(f"Created new session: {name}")
        dpg.delete_item("session_window")
        
        # Обновить список сессий в главном окне
        if dpg.does_item_exist("session_list"):
            from src.ui.main_window import load_sessions
            load_sessions(db, "session_list")