diff --git a/schemas/message.py b/schemas/message.py new file mode 100644 index 0000000..5cb52d9 --- /dev/null +++ b/schemas/message.py @@ -0,0 +1,38 @@ +from pydantic import BaseModel, Field +from typing import Optional +from uuid import UUID + + +class MessageBase(BaseModel): + sender_id: UUID = Field(..., description="ID of the message sender") + recipient_id: UUID = Field(..., description="ID of the message recipient") + content: str = Field(..., min_length=1, description="Content of the message") + is_read: bool = Field(default=False, description="Message read status") + + +class MessageCreate(MessageBase): + class Config: + schema_extra = { + "example": { + "sender_id": "123e4567-e89b-12d3-a456-426614174000", + "recipient_id": "123e4567-e89b-12d3-a456-426614174001", + "content": "Hello, how are you?", + "is_read": False + } + } + + +class Message(MessageBase): + id: UUID + + class Config: + orm_mode = True + schema_extra = { + "example": { + "id": "123e4567-e89b-12d3-a456-426614174002", + "sender_id": "123e4567-e89b-12d3-a456-426614174000", + "recipient_id": "123e4567-e89b-12d3-a456-426614174001", + "content": "Hello, how are you?", + "is_read": False + } + } \ No newline at end of file