summaryrefslogtreecommitdiff
path: root/src/match_up/model.py
diff options
context:
space:
mode:
authorKaran Jayachandra <karan.jayachandra@nxp.com>2024-04-12 10:29:29 +0200
committerKaran Jayachandra <karan.jayachandra@nxp.com>2024-04-12 10:29:29 +0200
commitc58caf5b8b8801ba826b0ff6b241d7f25a333bc8 (patch)
tree45b22248fd4fbcf23046ef30707da8ff1f65c880 /src/match_up/model.py
parente6939bb6421862a12048449094f2c55e6e9e401b (diff)
Added a more cleaner application
Diffstat (limited to 'src/match_up/model.py')
-rw-r--r--src/match_up/model.py153
1 files changed, 0 insertions, 153 deletions
diff --git a/src/match_up/model.py b/src/match_up/model.py
deleted file mode 100644
index d27893d..0000000
--- a/src/match_up/model.py
+++ /dev/null
@@ -1,153 +0,0 @@
-from pathlib import PurePath
-from tinydb import TinyDB, where
-from dataclasses import dataclass
-from random import randint
-
-MIN_SKILL = 1
-MAX_SKILL = 10
-
-
-class PlaySession:
- def __init__(self, database_location: PurePath):
- self.data = PlayerDatabase(database_location)
-
- def get_matches(self, number_of_courts: int = 4):
- player_list = self.data.get_players()
- game_list = []
- for i in range(number_of_courts):
- game_list.append(
- Game(
- court_number=i + 1,
- team_1=Team(
- player_1=player_list[randint(0, len(player_list) - 1)],
- player_2=player_list[randint(0, len(player_list) - 1)],
- ),
- team_2=Team(
- player_1=player_list[randint(0, len(player_list) - 1)],
- player_2=player_list[randint(0, len(player_list) - 1)],
- ),
- )
- )
- return game_list
-
- 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
- last_name: str
- skill: int = 1
- status: bool = False
- wait_time: int = 0
-
- def get_name(self):
- return self.first_name + " " + self.last_name
-
-
-@dataclass
-class Team:
- player_1: Player
- player_2: Player
-
- def __str__(self):
- return self.player_1.get_name() + " & " + self.player_2.get_name()
-
-
-@dataclass
-class Game:
- court_number: int
- team_1: Team
- team_2: Team
-
-
-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["status"],
- wait_time=row["wait_time"],
- )
- )
- 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(
- {
- "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):
- 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()
-
- def __del__(self):
- self.close()