72 lines
1.8 KiB
Python
72 lines
1.8 KiB
Python
|
|
from typing import Optional, Any
|
|
|
|
|
|
class User(object):
|
|
|
|
def __init__(self,
|
|
user_id: int,
|
|
username: str,
|
|
balance: int,
|
|
email: Optional[str] = None,
|
|
admin: bool = False,
|
|
member: bool = True) -> None:
|
|
self._user_id: int = user_id
|
|
self._username: str = username
|
|
self._email: Optional[str] = email
|
|
self._admin: bool = admin
|
|
self._member: bool = member
|
|
self._balance: int = balance
|
|
|
|
def __eq__(self, other: Any) -> bool:
|
|
if other is None or not isinstance(other, User):
|
|
return False
|
|
return self._user_id == other._user_id \
|
|
and self._username == other._username \
|
|
and self._email == other._email \
|
|
and self._admin == other._admin \
|
|
and self._member == other._member
|
|
|
|
@property
|
|
def id(self) -> int:
|
|
return self._user_id
|
|
|
|
@property
|
|
def name(self) -> str:
|
|
return self._username
|
|
|
|
@name.setter
|
|
def name(self, value):
|
|
self._username = value
|
|
|
|
@property
|
|
def email(self) -> Optional[str]:
|
|
return self._email
|
|
|
|
@email.setter
|
|
def email(self, email: str) -> None:
|
|
self._email = email
|
|
|
|
@property
|
|
def is_admin(self) -> bool:
|
|
return self._admin
|
|
|
|
@is_admin.setter
|
|
def is_admin(self, admin: bool) -> None:
|
|
self._admin = admin
|
|
|
|
@property
|
|
def is_member(self) -> bool:
|
|
return self._member
|
|
|
|
@is_member.setter
|
|
def is_member(self, member: bool) -> None:
|
|
self._member = member
|
|
|
|
@property
|
|
def balance(self) -> int:
|
|
return self._balance
|
|
|
|
@balance.setter
|
|
def balance(self, balance: int) -> None:
|
|
self._balance = balance
|