# src/app/config.py from pathlib import Path def get_project_root() -> Path: """ Returns the project root directory. Assumes this file is located at: /src/app/config.py so we go up two parents. """ return Path(__file__).resolve().parents[2] def get_data_dir() -> Path: """ Root data directory for all persisted user content. """ root = get_project_root() data_dir = root / "data" data_dir.mkdir(parents=True, exist_ok=True) return data_dir def get_user_dir(username: str) -> Path: """ Returns the directory for a given user and ensures that its subfolders exist. """ data_dir = get_data_dir() user_dir = data_dir / "users" / username user_dir.mkdir(parents=True, exist_ok=True) # create standard subfolders (user_dir / "decks").mkdir(parents=True, exist_ok=True) (user_dir / "viewers").mkdir(parents=True, exist_ok=True) (user_dir / "chats").mkdir(parents=True, exist_ok=True) (user_dir / "quizzes").mkdir(parents=True, exist_ok=True) return user_dir