feat: AnnouncementSystemクラスを追加 #38

pull/39/head
yupix 2 years ago
parent b519ef7b10
commit 0d6a6ef098
No known key found for this signature in database
GPG Key ID: 2FF705F5C56D9C06

@ -1,20 +1,24 @@
from __future__ import annotations
from datetime import datetime
from typing import TYPE_CHECKING
from typing import TYPE_CHECKING, Generic, TypeVar
from mipac.types.announcement import IAnnouncement
from mipac.types.announcement import (
IAnnouncement,
IAnnouncementCommon,
IAnnouncementSystem,
)
from mipac.util import str_to_datetime
if TYPE_CHECKING:
from mipac.manager.client import ClientManager
T = TypeVar('T', bound=IAnnouncementCommon)
class Announcement:
def __init__(
self, announcement: IAnnouncement, *, client: ClientManager
) -> None:
self.__announcement: IAnnouncement = announcement
class AnnouncementCommon(Generic[T]):
def __init__(self, announcement: T, *, client: ClientManager) -> None:
self.__announcement: T = announcement
self.__client: ClientManager = client
@property
@ -45,6 +49,26 @@ class Announcement:
def image_url(self) -> str | None:
return self.__announcement['image_url']
class Announcement(AnnouncementCommon):
def __init__(
self, announcement: IAnnouncement, *, client: ClientManager
) -> None:
super().__init__(announcement, client=client)
self.__announcement: IAnnouncement
@property
def is_read(self) -> bool:
return self.__announcement['is_read']
class AnnouncementSystem(AnnouncementCommon):
def __init__(
self, announcement: IAnnouncementSystem, *, client: ClientManager
) -> None:
super().__init__(announcement, client=client)
self.__announcement: IAnnouncementSystem
@property
def reads(self) -> int:
return self.__announcement['reads']

Loading…
Cancel
Save