summaryrefslogtreecommitdiff
path: root/app/model.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/model.py')
-rw-r--r--app/model.py68
1 files changed, 45 insertions, 23 deletions
diff --git a/app/model.py b/app/model.py
index 2833bb1..56921f4 100644
--- a/app/model.py
+++ b/app/model.py
@@ -31,11 +31,12 @@ class Court(db.Model):
class Courts:
def __init__(self):
- if app.config["COURT_COUNT"] is not None:
- db.session.query(Court).delete()
- for i in range(app.config["COURT_COUNT"]):
- db.session.add(Court())
- db.session.commit()
+ with app.app_context():
+ if app.config["COURT_COUNT"] is not None:
+ db.session.query(Court).delete()
+ for i in range(int(app.config["COURT_COUNT"])):
+ db.session.add(Court())
+ db.session.commit()
def get(self, id: int) -> bool:
court = db.session.get(Court, id)
@@ -69,9 +70,17 @@ class Player(db.Model):
id: Mapped[int] = mc(primary_key=True)
first_name: Mapped[str] = mc(String(64), index=True, default="---")
last_name: Mapped[str] = mc(String(64), index=True, default="---")
- team: Mapped[int] = mc(Integer, index=True, default=0)
- status: Mapped[bool] = mc(Boolean, default=False)
- level: Mapped[int] = mc(Integer, default=app.config["MIN_PLAYER_LEVEL"])
+ team: Mapped[int] = mc(Integer, index=True)
+ status: Mapped[bool] = mc(Boolean)
+ level: Mapped[int] = mc(Integer)
+
+ def __init__(self, id, first_name, last_name, team = 0, status = False, level = int(app.config["MIN_PLAYER_LEVEL"])):
+ self.id = id
+ self.first_name = first_name
+ self.last_name = last_name
+ self.team = team
+ self.status = status
+ self.level = level
def __repr__(self):
return f"{self.first_name} {self.last_name} is {"active" if self.status else "inactive"}"
@@ -80,8 +89,8 @@ class Player(db.Model):
def initialize_random_database(
player_count: int = 80, guest_per_level: int = 4
) -> None:
- db.session.add(Player(*{"first_name": "---", "last_name": ""}))
- db.session.add(Player(*{"first_name": "RESERVED", "last_name": ""}))
+ db.session.add(Player(**{"id": 0, "first_name": "---", "last_name": ""}))
+ db.session.add(Player(**{"id": 1, "first_name": "RESERVED", "last_name": ""}))
total_teams = 5
players_per_team = 5
for i in range(player_count):
@@ -98,29 +107,32 @@ def initialize_random_database(
app.config["MIN_PLAYER_LEVEL"], app.config["MAX_PLAYER_LEVEL"]
),
}
- db.session.add(Player(*args))
+ db.session.add(Player(**args))
meta_data = {"first_name": "Guest", "team": 0, "status": False}
for level_id, level in enumerate(app.config["GUEST_LEVELS"]):
for player_id in range(guest_per_level):
unique_id = (level_id * guest_per_level) + player_id + 1
args = meta_data | {"last_name": str(unique_id), "level": level}
- db.session.add(Player(*args))
+ db.session.add(Player(**args))
db.session.commit()
class Players:
def __init__(self) -> None:
- if app.config["DATABASE_CSV"] is not None:
- data = read_csv(app.config["DATABASE_CSV"])
- db.session.query(Player).delete()
- for entry in data.to_dict("records"):
- args = entry | {"status": False}
- db.session.add(Player(*args))
- db.session.commit()
- else:
- if len(self.all()) == 0:
- initialize_random_database()
+ with app.app_context():
+ if app.config["DATABASE_CSV"] is not None:
+ data = read_csv(app.config["DATABASE_CSV"])
+ db.session.query(Player).delete()
+ db.session.add(Player(**{"id": 0, "first_name": "---", "last_name": ""}))
+ db.session.add(Player(**{"id": 1, "first_name": "RESERVED", "last_name": ""}))
+ for entry in data.to_dict("records"):
+ args = entry | {"status": False}
+ db.session.add(Player(**args))
+ db.session.commit()
+ else:
+ if len(self.all()) == 0:
+ initialize_random_database()
def default_id(self):
query = select(Player).where(Player.first_name == "---")
@@ -184,12 +196,22 @@ class Game(db.Model):
player_4: Mapped[int] = mc(ForeignKey(Player.id), index=True)
date: Mapped[datetime] = mc(index=True, default=lambda: date.today())
+ def __init__(self, round_id: int, court_id: int, player_1: int, player_2: int, player_3: int, player_4: int):
+ self.round_id = round_id
+ self.court_id = court_id
+ self.player_1 = player_1
+ self.player_2 = player_2
+ self.player_3 = player_3
+ self.player_4 = player_4
+
+
class DisplayPlayer:
def __init__(self, player: Player):
self.id = player.id
- self.name = f"{player.first_name} {player.last_name}"
+ self.first_name = player.first_name
+ self.last_name = player.last_name
@dataclass