From c9c886480e3a8829e3106b519bcae7e78fcb805f Mon Sep 17 00:00:00 2001 From: Goffi Date: Tue, 28 Nov 2023 17:37:02 +0100 Subject: [PATCH] models (core): separate `MessageEditData` from `MessageEdition`: `MessageEditData` is used to carry a new `MessageData` when an edition has happened, while `MessageEdition` is used to send changes to do for a new edition. --- libervia/backend/models/core.py | 36 ++++++++++----------------------- 1 file changed, 11 insertions(+), 25 deletions(-) diff --git a/libervia/backend/models/core.py b/libervia/backend/models/core.py index d196b393..93e895fc 100644 --- a/libervia/backend/models/core.py +++ b/libervia/backend/models/core.py @@ -16,9 +16,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from typing import Annotated, Literal - -from pydantic import BaseModel, Field, validator +from pydantic import BaseModel, Field class MessageData(dict): @@ -34,31 +32,19 @@ class MessageUpdateData(BaseModel): super().__init__(**kwargs) -class MessageEditData(MessageUpdateData): - message: dict[str, str] | None = Field( - None, - description=( - "Updated message content, can be in several languages (key is language code " - 'or "" for default)' - ), - ) - subject: dict[str, str] | None = Field( - None, - description=( - "Updated subject of the message, can be in several languages (key is " - 'language code or "" for default)' - ), - ) - mess_type: str | None = Field( - None, - description=( - "Updated type of the message (cf RFC 6121 ยง5.2.2) + C.MESS_TYPE_INFO (system " - "info)" - ), - ) +class MessageEditData(MessageData): + """Data used when a new message edition has been received""" + pass class MessageReactionData(MessageUpdateData): reactions: dict[str, list[str]] = Field( description="Reaction to reacting entities mapping" ) + + +class MessageEdition(BaseModel): + """Data used to send a message edition""" + message: dict[str, str] + subject: dict[str, str] = Field(default_factory=dict) + extra: dict[str, str] = Field(default_factory=dict)