import json
from . import SoloTool

def loadSession(file: str, songPool: str, player=None) -> SoloTool:
    with open(file, "r") as f:
        session = json.load(f)

    st = SoloTool(songPool, player=player)

    for i, entry in enumerate(session):
        songPath = entry["path"]
        keyPoints = entry["key_points"]

        st.addSong(songPath)
        st._keyPoints[i] = keyPoints

    return st
        
def saveSession(soloTool: SoloTool, file: str) -> None:
    session = []

    for i, song in enumerate(soloTool.songs):
        entry = {
            "path": song,
            "key_points" : soloTool._keyPoints[i]
        }
        session.append(entry)

    with open(file, "w") as f:
        json.dump(session, f)