summaryrefslogtreecommitdiff
path: root/src/match_up/model.py
diff options
context:
space:
mode:
authorKaran Jayachandra <mail@karanjayachandra.com>2024-10-14 08:51:59 +0000
committerKaran Jayachandra <mail@karanjayachandra.com>2024-10-14 08:51:59 +0000
commiteac95cc2e259badf3a8c3309e6e7be97d5cbd868 (patch)
tree492b1497cf648e08e84a35dea2d217a57643dab0 /src/match_up/model.py
parent2b264abdf62822936e3510b0f9690ba1e359a9b8 (diff)
parentf80463a6437533deef1d85ffa31cf0cc5ed8e454 (diff)
Merge branch 'pure' into 'develop'
Dash to Flask HTML Conversion See merge request KaranJayachandra/match_up!1
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()