From 410cbb1b9b463fe042f6321b9b50b356a8eefcfe Mon Sep 17 00:00:00 2001 From: yupix Date: Wed, 18 Jan 2023 10:36:06 +0000 Subject: [PATCH] =?UTF-8?q?:sparkles:=20feat:=20Announcement=E3=82=AF?= =?UTF-8?q?=E3=83=A9=E3=82=B9=E3=82=92=E8=BF=BD=E5=8A=A0=20#36?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mipac/models/announcement.py | 50 ++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 mipac/models/announcement.py diff --git a/mipac/models/announcement.py b/mipac/models/announcement.py new file mode 100644 index 0000000..e4a5bfe --- /dev/null +++ b/mipac/models/announcement.py @@ -0,0 +1,50 @@ +from __future__ import annotations +from datetime import datetime + +from typing import TYPE_CHECKING + +from mipac.types.announcement import IAnnouncement +from mipac.util import str_to_datetime + +if TYPE_CHECKING: + from mipac.manager.client import ClientManager + + +class Announcement: + def __init__( + self, announcement: IAnnouncement, *, client: ClientManager + ) -> None: + self.__announcement: IAnnouncement = announcement + self.__client: ClientManager = client + + @property + def id(self) -> str | None: + return self.__announcement['id'] + + @property + def created_at(self) -> datetime: + return str_to_datetime(self.__announcement['created_at']) + + @property + def updated_at(self) -> datetime | None: + return ( + str_to_datetime(self.__announcement['updated_at']) + if self.__announcement['updated_at'] + else None + ) + + @property + def text(self) -> str: + return self.__announcement['text'] + + @property + def title(self) -> str: + return self.__announcement['title'] + + @property + def image_url(self) -> str | None: + return self.__announcement['image_url'] + + @property + def is_read(self) -> bool: + return self.__announcement['is_read']