Files
Messenger/app/media/schemas.py
benya 30169a3a27
All checks were successful
CI / test (push) Successful in 23s
feat: add waveform voice messages end-to-end
2026-03-08 12:40:49 +03:00

48 lines
1.2 KiB
Python

from pydantic import BaseModel, ConfigDict, Field
from datetime import datetime
class UploadUrlRequest(BaseModel):
file_name: str = Field(min_length=1, max_length=255)
file_type: str = Field(min_length=1, max_length=64)
file_size: int = Field(gt=0)
class UploadUrlResponse(BaseModel):
upload_url: str
file_url: str
object_key: str
expires_in: int
required_headers: dict[str, str]
class AttachmentCreateRequest(BaseModel):
message_id: int
file_url: str = Field(min_length=1, max_length=1024)
file_type: str = Field(min_length=1, max_length=64)
file_size: int = Field(gt=0)
waveform_points: list[int] | None = Field(default=None, min_length=8, max_length=256)
class AttachmentRead(BaseModel):
model_config = ConfigDict(from_attributes=True)
id: int
message_id: int
file_url: str
file_type: str
file_size: int
waveform_points: list[int] | None = None
class ChatAttachmentRead(BaseModel):
id: int
message_id: int
sender_id: int
message_type: str
message_created_at: datetime
file_url: str
file_type: str
file_size: int
waveform_points: list[int] | None = None