11from datetime import datetime
22from enum import IntEnum
3- from typing import List , Optional , Union
4-
5- from attrs import converters
3+ from typing import TYPE_CHECKING , List , Optional , Union
64
75from ..error import LibraryException
86from .attrs_utils import (
2220from .team import Application
2321from .user import User
2422
23+ if TYPE_CHECKING :
24+ from ...client .models .component import Component
25+
2526__all__ = (
2627 "MessageType" ,
2728 "Message" ,
@@ -820,7 +821,7 @@ class Message(ClientSerializerMixin):
820821 :ivar Union[int, str] nonce: Used for message validation
821822 :ivar bool pinned: Whether this message is pinned.
822823 :ivar Optional[Snowflake] webhook_id?: Webhook ID if the message is generated by a webhook.
823- :ivar int type: Type of message
824+ :ivar MessageType type: Type of message
824825 :ivar Optional[MessageActivity] activity?: Message activity object that's sent by Rich Presence
825826 :ivar Optional[Application] application?: Application object that's sent by Rich Presence
826827 :ivar Optional[MessageReference] message_reference?: Data showing the source of a message (crosspost, channel follow, add, pin, or replied message)
@@ -837,9 +838,7 @@ class Message(ClientSerializerMixin):
837838 channel_id : Snowflake = field (converter = Snowflake )
838839 guild_id : Optional [Snowflake ] = field (converter = Snowflake , default = None )
839840 author : User = field (converter = User , add_client = True , default = None )
840- member : Optional [Member ] = field (
841- converter = converters .optional (Member ), default = None , add_client = True
842- )
841+ member : Optional [Member ] = field (converter = Member , default = None , add_client = True )
843842 content : str = field (default = None )
844843 timestamp : datetime = field (converter = datetime .fromisoformat , default = None )
845844 edited_timestamp : Optional [datetime ] = field (converter = datetime .fromisoformat , default = None )
@@ -861,7 +860,7 @@ class Message(ClientSerializerMixin):
861860 nonce : Optional [Union [int , str ]] = field (default = None )
862861 pinned : bool = field (default = None )
863862 webhook_id : Optional [Snowflake ] = field (converter = Snowflake , default = None )
864- type : int = field (default = None )
863+ type : MessageType = field (converter = MessageType , default = None )
865864 activity : Optional [MessageActivity ] = field (converter = MessageActivity , default = None )
866865 application : Optional [Application ] = field (converter = Application , default = None )
867866 application_id : Optional [Snowflake ] = field (converter = Snowflake , default = None )
@@ -874,7 +873,9 @@ class Message(ClientSerializerMixin):
874873 thread : Optional [Channel ] = field (converter = Channel , default = None , add_client = True )
875874
876875 components : Optional [Union ["Component" , List ["Component" ]]] = field (default = None ) # noqa: F821
877- sticker_items : Optional [List [PartialSticker ]] = field (converter = convert_list , default = None )
876+ sticker_items : Optional [List [PartialSticker ]] = field (
877+ converter = convert_list (PartialSticker ), default = None
878+ )
878879 stickers : Optional [List [Sticker ]] = field (
879880 converter = convert_list (Sticker ), default = None
880881 ) # deprecated
0 commit comments