summaryrefslogtreecommitdiff
path: root/src/match_up/model.py
diff options
context:
space:
mode:
authorKaran Jayachandra <karan.jayachandra@nxp.com>2024-04-04 17:06:26 +0200
committerKaran Jayachandra <karan.jayachandra@nxp.com>2024-04-04 17:06:26 +0200
commit5c919160e3c6c3476f7ffc760a16c279b93891bd (patch)
tree28a2e504844eac857380f0dfafc65ba36f2cab28 /src/match_up/model.py
parent93107be91806cc7bf35b33d090d185c988fafda7 (diff)
First useful code
Diffstat (limited to 'src/match_up/model.py')
-rw-r--r--src/match_up/model.py59
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