ChessWithQuests

User (model.users.user)

model.users.user

User profile model encapsulating user identity, ratings, and quest progress.

User

Represents a player user account with rating, identity, and completed achievements.

Source code in src/model/users/user.py
class User:
    """Represents a player user account with rating, identity, and completed achievements."""

    def __init__(
        self,
        username: str,
        name: str = "",
        email: str = "",
        elo: int = 1200,
        completed_quests: Optional[List[Any]] = None,
    ):
        """Initialize a User profile.

        Args:
            username: Unique account handle.
            name: Full name of the user.
            email: User's contact email.
            elo: Current skill rating (default: 1200).
            completed_quests: Optional list of previously completed quests.
        """
        self.username = username
        self.name = name
        self.email = email
        self.elo = elo
        self.completed_quests: List[Any] = completed_quests if completed_quests is not None else []

    def add_quest(self, quest: Any) -> None:
        """Add a completed quest to this user's profile.

        Args:
            quest: Quest instance or identifier.
        """
        if quest not in self.completed_quests:
            self.completed_quests.append(quest)

    def get_completed_quests(self) -> List[Any]:
        """Get the list of quests completed by the user.

        Returns:
            List of completed quests.
        """
        return list(self.completed_quests)

    def getEloRating(self) -> int:
        """Get the user's current Elo rating.

        Returns:
            Current integer Elo rating.
        """
        return self.elo
__init__(username, name='', email='', elo=1200, completed_quests=None)

Initialize a User profile.

Parameters:

Name Type Description Default
username str

Unique account handle.

required
name str

Full name of the user.

''
email str

User's contact email.

''
elo int

Current skill rating (default: 1200).

1200
completed_quests Optional[List[Any]]

Optional list of previously completed quests.

None
Source code in src/model/users/user.py
def __init__(
    self,
    username: str,
    name: str = "",
    email: str = "",
    elo: int = 1200,
    completed_quests: Optional[List[Any]] = None,
):
    """Initialize a User profile.

    Args:
        username: Unique account handle.
        name: Full name of the user.
        email: User's contact email.
        elo: Current skill rating (default: 1200).
        completed_quests: Optional list of previously completed quests.
    """
    self.username = username
    self.name = name
    self.email = email
    self.elo = elo
    self.completed_quests: List[Any] = completed_quests if completed_quests is not None else []
add_quest(quest)

Add a completed quest to this user's profile.

Parameters:

Name Type Description Default
quest Any

Quest instance or identifier.

required
Source code in src/model/users/user.py
def add_quest(self, quest: Any) -> None:
    """Add a completed quest to this user's profile.

    Args:
        quest: Quest instance or identifier.
    """
    if quest not in self.completed_quests:
        self.completed_quests.append(quest)
getEloRating()

Get the user's current Elo rating.

Returns:

Type Description
int

Current integer Elo rating.

Source code in src/model/users/user.py
def getEloRating(self) -> int:
    """Get the user's current Elo rating.

    Returns:
        Current integer Elo rating.
    """
    return self.elo
get_completed_quests()

Get the list of quests completed by the user.

Returns:

Type Description
List[Any]

List of completed quests.

Source code in src/model/users/user.py
def get_completed_quests(self) -> List[Any]:
    """Get the list of quests completed by the user.

    Returns:
        List of completed quests.
    """
    return list(self.completed_quests)
ChessWithQuests