feat: MuteUserモデルを更新

pull/109/head
yupix 7 months ago
parent 45c2479879
commit 3a9707f5f2
No known key found for this signature in database
GPG Key ID: 2FF705F5C56D9C06

@ -1,37 +1,47 @@
from __future__ import annotations from __future__ import annotations
from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from mipac.models.user import MeDetailed, UserDetailedNotMe, packed_user from mipac.models.user import UserDetailedNotMe
from mipac.types.mute import IMuteUser from mipac.types.mute import IMuteUser
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
class MuteUser: class MuteUser:
def __init__(self, data: IMuteUser, *, client: ClientManager) -> None: def __init__(self, raw_mute_user: IMuteUser, *, client: ClientManager) -> None:
self.__data: IMuteUser = data self.__raw_mute_user: IMuteUser = raw_mute_user
self.__client: ClientManager = client self.__client: ClientManager = client
@property @property
def id(self) -> str: def id(self) -> str:
return self.__data["id"] return self.__raw_mute_user["id"]
@property @property
def created_at(self) -> str: def created_at(self) -> str:
return self.__data["created_at"] return self.__raw_mute_user["created_at"]
@property
def expires_at(self) -> datetime | None:
return (
str_to_datetime(self.__raw_mute_user["expires_at"])
if self.__raw_mute_user["expires_at"]
else None
)
@property @property
def mutee_id(self) -> str: def mutee_id(self) -> str:
return self.__data["mutee_id"] return self.__raw_mute_user["mutee_id"]
@property @property
def mutee(self) -> UserDetailedNotMe | MeDetailed: def mutee(self) -> UserDetailedNotMe:
return packed_user(self.__data["mutee"], client=self.__client) return UserDetailedNotMe(self.__raw_mute_user["mutee"], client=self.__client)
def __eq__(self, __value: MuteUser) -> bool: def __eq__(self, __value: MuteUser) -> bool:
return isinstance(__value, IMuteUser) and self.id == __value.id return isinstance(__value, MuteUser) and self.id == __value.id
def __ne__(self, __value: MuteUser) -> bool: def __ne__(self, __value: MuteUser) -> bool:
return not self.__eq__(__value) return not self.__eq__(__value)

@ -9,5 +9,6 @@ if TYPE_CHECKING:
class IMuteUser(TypedDict): class IMuteUser(TypedDict):
id: str id: str
created_at: str created_at: str
expires_at: str | None
mutee_id: str mutee_id: str
mutee: IUserDetailed mutee: IUserDetailed

Loading…
Cancel
Save