summaryrefslogtreecommitdiff
path: root/model.py
diff options
context:
space:
mode:
Diffstat (limited to 'model.py')
-rw-r--r--model.py103
1 files changed, 0 insertions, 103 deletions
diff --git a/model.py b/model.py
deleted file mode 100644
index f768d0f..0000000
--- a/model.py
+++ /dev/null
@@ -1,103 +0,0 @@
-from math import floor
-from csv import reader
-from typing import Tuple
-from dataclasses import dataclass
-
-MIN_LEVEL = 1
-MAX_LEVEL = 10
-PLAYER_PER_COURT = 4
-
-
-@dataclass
-class Player:
- name: str
- skill: int = 1
- status: bool = False
-
-
-@dataclass
-class Team:
- player1: str
- player2: str
-
-
-@dataclass
-class Game:
- court: int
- team1: Team
- team2: Team
-
-
-@dataclass
-class CourtList:
- total: int
-
- def __post_init__(self) -> None:
- self.courts = {i + 1: True for i in range(self.total)}
-
- def get_court_status(self, court_number: int) -> bool:
- return self.courts[court_number]
-
- def toggle_court_status(self, court_number: int) -> None:
- new_status = not self.courts[court_number]
- self.courts[court_number] = new_status
- return new_status
-
- def get_courts(self) -> dict:
- return self.courts
-
- def separate_courts(self) -> Tuple[dict, dict]:
- active_courts = {k: v for k, v in self.courts.items() if v}
- inactive_courts = {k: v for k, v in self.courts.items() if not v}
- return active_courts, inactive_courts
-
-
-@dataclass
-class PlayerList:
- location: str
- guests: int = 0
-
- def __post_init__(self) -> None:
- with open("data/" + self.location, newline="") as file:
- pointer = reader(file)
- next(pointer, None)
- players = {
- id: Player(row[0], int(row[1])) for id, row in enumerate(pointer)
- }
- self.guest_id_start = len(players) + 1
- self.players = players
-
- def increment_guests(self):
- self.guests = self.guests + 1
- return self.guests
-
- def decrement_guests(self):
- if self.guests == 0:
- return 0
- self.guests = self.guests - 1
- return self.guests
-
- def get_player_status(self, player_number: int) -> bool:
- return self.players[player_number].status
-
- def toggle_player_status(self, player_number: int) -> Tuple[bool, str]:
- new_status = not self.players[player_number].status
- self.players[player_number].status = new_status
- return new_status, self.players[player_number].name
-
- def get_players(self) -> dict:
- return self.players
-
- def get_possible_game_count(self) -> int:
- total_players = len(self.get_potential_players())
- possible_games = floor(total_players / PLAYER_PER_COURT)
- return possible_games
-
- def get_potential_players(self) -> dict:
- players = {k: v for k, v in self.players.items() if v.status}
- guests = {
- self.guest_id_start + k: Player(name=f"Guest {k}")
- for k in range(1, self.guests + 1)
- }
- players.update(guests)
- return players