From 60a489cfb3fb7a12a06212c2c7ed3c05cd0757b5 Mon Sep 17 00:00:00 2001 From: Karan Jayachandra Date: Fri, 25 Oct 2024 18:03:18 +0200 Subject: Moved the files into a folder structure --- model.py | 104 --------------------------------------------------------------- 1 file changed, 104 deletions(-) delete mode 100644 model.py (limited to 'model.py') diff --git a/model.py b/model.py deleted file mode 100644 index c652ce8..0000000 --- a/model.py +++ /dev/null @@ -1,104 +0,0 @@ -from os import getenv -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 = int(getenv("COURTS")) - - 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 = getenv("DATABASE") - 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 -- cgit v1.3.1