58 lines
1.4 KiB
Python
58 lines
1.4 KiB
Python
|
|
from typing import Optional, Any
|
|
|
|
|
|
class User(object):
|
|
|
|
def __init__(self,
|
|
user_id: int,
|
|
username: str,
|
|
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
|
|
|
|
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
|
|
|
|
@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
|