Files
linkra/backend/app/models.py
2026-05-10 09:50:39 +03:00

42 lines
1.1 KiB
Python

from datetime import datetime, timezone
from pydantic import BaseModel, Field
def utcnow() -> datetime:
return datetime.now(timezone.utc)
class AttachmentRecord(BaseModel):
attachment_id: str
original_name: str
stored_name: str
content_type: str
size_bytes: int
created_at: datetime = Field(default_factory=utcnow)
class ChatEventRecord(BaseModel):
event_type: str
author: str
author_identity: str | None = None
text: str | None = None
attachment_id: str | None = None
file_name: str | None = None
created_at: datetime = Field(default_factory=utcnow)
class CallRecord(BaseModel):
room_name: str
room_title: str
invite_token: str
invite_short_code: str | None = None
quick_join_default: bool = False
password: str | None = None
created_at: datetime = Field(default_factory=utcnow)
started_at: datetime | None = None
is_active: bool = True
participant_names: list[str] = Field(default_factory=list)
chat_events: list[ChatEventRecord] = Field(default_factory=list)
attachments: list[AttachmentRecord] = Field(default_factory=list)