# In data/paths.py import firebase_admin from firebase_admin import firestore class LearningPathManager: def __init__(self): self.db = firestore.client() self.collection = self.db.collection('learning_paths') def create_path(self, path_data): """Create a new learning path""" doc_ref = self.collection.document() doc_ref.set(path_data) return doc_ref.id def get_path(self, path_id): """Get learning path by ID""" doc = self.collection.document(path_id).get() return doc.to_dict() if doc.exists else None def get_all_paths(self): """Get all learning paths""" docs = self.collection.stream() return [doc.to_dict() for doc in docs] def add_module_to_path(self, path_id, module_id, position=None): """Add a module to a learning path""" path = self.get_path(path_id) if not path: return False if 'modules' not in path: path['modules'] = [] if position is None or position >= len(path['modules']): path['modules'].append(module_id) else: path['modules'].insert(position, module_id) self.collection.document(path_id).update({ 'modules': path['modules'] }) return True