revanced-api/api/models/announcements.py
2024-04-08 21:03:29 +00:00

41 lines
1.1 KiB
Python

from data.models import AnnouncementDbModel
class ContentFields(dict):
message: str | None
attachment_urls: list[str] | None
class AnnouncementResponseModel(dict):
id: int
author: str | None
title: str
content: ContentFields | None
channel: str
created_at: str
level: int | None
@staticmethod
def to_response(announcement: AnnouncementDbModel):
response = AnnouncementResponseModel(
id=announcement.id,
author=announcement.author,
title=announcement.title,
content=(
ContentFields(
message=announcement.message,
attachment_urls=[
attachment.attachment_url
for attachment in announcement.attachments
],
)
if announcement.message or announcement.attachments
else None
),
channel=announcement.channel,
created_at=str(announcement.created_at),
level=announcement.level,
)
return response