diff options
| author | Karan Jayachandra <karan.jayachandra@nxp.com> | 2024-04-04 17:06:26 +0200 |
|---|---|---|
| committer | Karan Jayachandra <karan.jayachandra@nxp.com> | 2024-04-04 17:06:26 +0200 |
| commit | 5c919160e3c6c3476f7ffc760a16c279b93891bd (patch) | |
| tree | 28a2e504844eac857380f0dfafc65ba36f2cab28 /src/match_up/model.py | |
| parent | 93107be91806cc7bf35b33d090d185c988fafda7 (diff) | |
First useful code
Diffstat (limited to 'src/match_up/model.py')
| -rw-r--r-- | src/match_up/model.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/match_up/model.py b/src/match_up/model.py new file mode 100644 index 0000000..1de0811 --- /dev/null +++ b/src/match_up/model.py @@ -0,0 +1,59 @@ +from pathlib import PurePath +from tinydb import TinyDB, where +from dataclasses import dataclass + + +@dataclass +class Player: + first_name: str + last_name: str + skill: int = 1 + status: bool = False + wait_time: int = 0 + + +class PlayerDatabase: + def __init__(self, database_location: PurePath = PurePath("storage.json")): + print(f"Using database location: {database_location.name}") + self._database = TinyDB(database_location.name) + + def get_players(self) -> list[Player]: + player_list = [] + for row in self._database: + player_list.append( + Player( + first_name=row["first_name"], + last_name=row["last_name"], + skill=row["skill"], + status=row["skill"], + wait_time=row["wait_time"], + ) + ) + return player_list + + def add_player(self, player: Player) -> bool: + self._database.insert( + { + "first_name": player.first_name, + "last_name": player.last_name, + "skill": player.skill, + "status": player.status, + "wait_time": player.wait_time, + } + ) + + def remove_player(self, player: Player) -> bool: + self._database.remove( + where("first_name") == player.first_name + 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 |
