aboutsummaryrefslogtreecommitdiff
path: root/src/match_up/model.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/match_up/model.py')
-rw-r--r--src/match_up/model.py35
1 files changed, 26 insertions, 9 deletions
diff --git a/src/match_up/model.py b/src/match_up/model.py
index b1e77f5..9b2dce7 100644
--- a/src/match_up/model.py
+++ b/src/match_up/model.py
@@ -10,7 +10,6 @@ from names import get_first_name, get_last_name
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine, Column, String, Integer, not_
-
MIN_LEVEL = 1
MAX_LEVEL = 10
DEFAULT_COURTS = 12
@@ -104,8 +103,21 @@ class CourtList:
return active_courts, inactive_courts
+def _textualize_guest(level, value) -> str:
+ match level:
+ case 1:
+ text = "Beginners"
+ case 3:
+ text = "Novices"
+ case 5:
+ text = "Intermediates"
+ if value == 1:
+ text = text[:-1]
+ return f"{value} {text}"
+
+
class PlayerList:
- guests: dict = {"low": 0, "mid": 0, "high": 0}
+ guests: dict = {1: 0, 3: 0, 5: 0}
def __init__(self, csv_location: str = None) -> None:
self._init_database()
@@ -122,15 +134,15 @@ class PlayerList:
Base.metadata.create_all(bind=engine)
self.session = sessionmaker(bind=engine)()
- def increment_guests(self, level: str):
+ def increment_guests(self, level: int):
self.guests[level] = self.guests[level] + 1
- return self.guests[level]
+ return _textualize_guest(level, self.guests[level])
- def decrement_guests(self, level: str):
+ def decrement_guests(self, level: int):
if self.guests[level] == 0:
return 0
self.guests[level] = self.guests[level] - 1
- return self.guests[level]
+ return _textualize_guest(level, self.guests[level])
def get_player_status(self, id: int) -> bool:
return self.session.query(Player).filter(Player.id == id).first().status
@@ -171,7 +183,7 @@ class PlayerList:
status=True,
count=rounds,
)
- for i in range(1, self.guests["low"] + 1)
+ for i in range(1, self.guests[1] + 1)
]
mid_guests = [
Player(
@@ -182,7 +194,7 @@ class PlayerList:
status=True,
count=rounds,
)
- for i in range(1, self.guests["mid"] + 1)
+ for i in range(1, self.guests[3] + 1)
]
high_guests = [
Player(
@@ -193,10 +205,15 @@ class PlayerList:
status=True,
count=rounds,
)
- for i in range(1, self.guests["high"] + 1)
+ for i in range(1, self.guests[5] + 1)
]
return active_players + low_guests + mid_guests + high_guests
+ def get_guests(self):
+ return {
+ level: _textualize_guest(level, self.guests[level]) for level in self.guests
+ }
+
def increment_game_count(self, player_ids: list[int]):
players = self.session.query(Player).filter(Player.id.in_(player_ids))
for player in players: