mirror of https://github.com/yupix/mipac
parent
ce48f90d02
commit
5580a42ea3
@ -1,78 +1,69 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import TYPE_CHECKING, Generic, TypeVar
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
from mipac.abstract.model import AbstractModel
|
|
||||||
from mipac.models.lite.user import PartialUser
|
from mipac.models.lite.user import PartialUser
|
||||||
from mipac.types.invite import IInviteCode, IPartialInviteCode
|
from mipac.types.invite import IInviteCode
|
||||||
from mipac.utils.format import str_to_datetime
|
from mipac.utils.format import str_to_datetime
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from mipac.manager.client import ClientManager
|
from mipac.manager.client import ClientManager
|
||||||
|
|
||||||
|
|
||||||
T = TypeVar("T", bound=IPartialInviteCode)
|
class InviteCode:
|
||||||
|
|
||||||
|
|
||||||
class PartialInviteCode(Generic[T], AbstractModel):
|
|
||||||
def __init__(self, raw_invite_code: T, *, client: ClientManager) -> None:
|
|
||||||
self._raw_invite_code: T = raw_invite_code
|
|
||||||
self._client = client
|
|
||||||
|
|
||||||
@property
|
|
||||||
def code(self) -> str:
|
|
||||||
return self._raw_invite_code["code"]
|
|
||||||
|
|
||||||
|
|
||||||
class InviteCode(PartialInviteCode[IInviteCode]):
|
|
||||||
def __init__(self, raw_invite_code: IInviteCode, *, client: ClientManager) -> None:
|
def __init__(self, raw_invite_code: IInviteCode, *, client: ClientManager) -> None:
|
||||||
super().__init__(raw_invite_code=raw_invite_code, client=client)
|
self.__raw_invite_code: IInviteCode = raw_invite_code
|
||||||
|
self.__client = client
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def id(self) -> str:
|
def id(self) -> str:
|
||||||
return self._raw_invite_code["id"]
|
return self.__raw_invite_code["id"]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def code(self) -> str:
|
||||||
|
return self.__raw_invite_code["code"]
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def expires_at(self) -> datetime | None:
|
def expires_at(self) -> datetime | None:
|
||||||
return (
|
return (
|
||||||
str_to_datetime(self._raw_invite_code["expires_at"])
|
str_to_datetime(self.__raw_invite_code["expires_at"])
|
||||||
if self._raw_invite_code["expires_at"]
|
if self.__raw_invite_code["expires_at"]
|
||||||
else None
|
else None
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def created_at(self) -> datetime | None:
|
def created_at(self) -> datetime | None:
|
||||||
return (
|
return (
|
||||||
str_to_datetime(self._raw_invite_code["created_at"])
|
str_to_datetime(self.__raw_invite_code["created_at"])
|
||||||
if self._raw_invite_code["created_at"]
|
if self.__raw_invite_code["created_at"]
|
||||||
else None
|
else None
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def created_by(self) -> PartialUser | None:
|
def created_by(self) -> PartialUser | None:
|
||||||
return (
|
return (
|
||||||
PartialUser(self._raw_invite_code["created_by"], client=self._client)
|
PartialUser(self.__raw_invite_code["created_by"], client=self.__client)
|
||||||
if self._raw_invite_code["created_by"]
|
if self.__raw_invite_code["created_by"]
|
||||||
else None
|
else None
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def used_by(self) -> PartialUser | None:
|
def used_by(self) -> PartialUser | None:
|
||||||
return (
|
return (
|
||||||
PartialUser(self._raw_invite_code["used_by"], client=self._client)
|
PartialUser(self.__raw_invite_code["used_by"], client=self.__client)
|
||||||
if self._raw_invite_code["used_by"]
|
if self.__raw_invite_code["used_by"]
|
||||||
else None
|
else None
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def used_at(self) -> datetime | None:
|
def used_at(self) -> datetime | None:
|
||||||
return (
|
return (
|
||||||
str_to_datetime(self._raw_invite_code["used_at"])
|
str_to_datetime(self.__raw_invite_code["used_at"])
|
||||||
if self._raw_invite_code["used_at"]
|
if self.__raw_invite_code["used_at"]
|
||||||
else None
|
else None
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def used(self) -> bool:
|
def used(self) -> bool:
|
||||||
return self._raw_invite_code["used"]
|
return self.__raw_invite_code["used"]
|
||||||
|
Loading…
Reference in new issue