import 'package:cabo_counter/data/game_session.dart'; import 'package:cabo_counter/services/local_storage_service.dart'; import 'package:flutter/foundation.dart'; class GameManager extends ChangeNotifier { List gameList = []; /// Adds a new game session to the list and sorts it by creation date. /// Takes a [GameSession] object as input. It then adds the session to the `gameList`, /// sorts the list in descending order based on the creation date, and notifies listeners of the change. /// It also saves the updated game sessions to local storage. /// Returns the index of the newly added session in the sorted list. Future addGameSession(GameSession session) async { gameList.add(session); print( '[game_manager.dart] Added game session: ${session.gameTitle} at ${session.createdAt}'); gameList.sort((a, b) => b.createdAt.compareTo(a.createdAt)); print( '[game_manager.dart] Sorted game sessions by creation date. Total sessions: ${gameList.length}'); notifyListeners(); await LocalStorageService.saveGameSessions(); print('[game_manager.dart] Saved game sessions to local storage.'); return gameList.indexOf(session); } /// Removes a game session from the list and sorts it by creation date. /// Takes a [index] as input. It then removes the session at the specified index from the `gameList`, /// sorts the list in descending order based on the creation date, and notifies listeners of the change. /// It also saves the updated game sessions to local storage. void removeGameSession(int index) { gameList.removeAt(index); notifyListeners(); LocalStorageService.saveGameSessions(); } } final gameManager = GameManager();