diff options
Diffstat (limited to 'src/match_up/model.py')
| -rw-r--r-- | src/match_up/model.py | 68 |
1 files changed, 59 insertions, 9 deletions
diff --git a/src/match_up/model.py b/src/match_up/model.py index 924e674..181b698 100644 --- a/src/match_up/model.py +++ b/src/match_up/model.py @@ -3,6 +3,27 @@ from tinydb import TinyDB, where from dataclasses import dataclass +class PlaySession: + def __init__(self, database_location: PurePath): + self.data = PlayerDatabase(database_location) + + def start_round(self): ... + + def end_round(self): ... + + def end(self): + self.data.close() + + def __str__(self): + display_string = "" + for player in self.data.get_players(): + display_string = display_string + player.__str__() + "\n" + return display_string.rstrip() + + def __del__(self): + self.end() + + @dataclass class Player: first_name: str @@ -31,6 +52,38 @@ class PlayerDatabase: ) return player_list + def activate_player(self, player: Player): + self._database.update( + {"status": True}, + where("first_name") == player.first_name + and where("last_name") == player.last_name, + ) + + def deactivate_player(self, player: Player): + self._database.update( + {"wait_time": False}, + where("first_name") == player.first_name + and where("last_name") == player.last_name, + ) + + def increment_player_wait(self, player: Player): + self._database.update( + {"wait_time": 1}, + where("first_name") == player.first_name + and where("last_name") == player.last_name, + ) + + def reset_player_wait(self, player: Player): + self._database.update( + {"wait_time": 0}, + where("first_name") == player.first_name + and where("last_name") == player.last_name, + ) + + def deactivate_all_players(self) -> bool: + for row in self._database: + row["status"] = False + def add_player(self, player: Player) -> bool: self._database.insert( { @@ -48,15 +101,12 @@ class PlayerDatabase: and where("last_name") == player.last_name ) - def update_player_skill(self, player: Player): ... - - def activate_player(self, player: Player): ... - - def deactivate_player(self, player: Player): ... - - def deactivate_all_players(self) -> bool: - for row in self._database: - row["status"] = False + def update_player_skill(self, player: Player): + self._database.update( + {"skill": player.skill}, + where("first_name") == player.first_name + and where("last_name") == player.last_name, + ) def close(self) -> None: self._database.close() |
