diff --git a/CHANGES/1450.bugfix.rst b/CHANGES/1450.bugfix.rst index e1294153..376ac6cc 100644 --- a/CHANGES/1450.bugfix.rst +++ b/CHANGES/1450.bugfix.rst @@ -1 +1 @@ -fixed json serialization for Message +fixed json serialization, deserialization for Message diff --git a/aiogram/types/link_preview_options.py b/aiogram/types/link_preview_options.py index ba859509..3f88c582 100644 --- a/aiogram/types/link_preview_options.py +++ b/aiogram/types/link_preview_options.py @@ -1,6 +1,6 @@ from typing import TYPE_CHECKING, Any, Optional, Union -from pydantic import field_serializer +from pydantic import field_serializer, field_validator from ..client.default import Default from .base import TelegramObject @@ -31,8 +31,19 @@ class LinkPreviewOptions(TelegramObject): "show_above_text", when_used="json", ) - def serialize_fields(self, value): - return value.__str__() + def serialize_fields(self, value: Default) -> str: + return value.name + + @classmethod + @field_validator( + "is_disabled", + "prefer_small_media", + "prefer_large_media", + "show_above_text", + mode="before", + ) + def deserialize_fields(cls, value: str) -> Default: + return Default(value) if TYPE_CHECKING: # DO NOT EDIT MANUALLY!!!