feat: sending and receiving messages with files, editing text messages
This commit is contained in:
@@ -109,6 +109,23 @@ class Chat(BaseModel):
|
||||
)
|
||||
|
||||
|
||||
class MessageFile(BaseModel):
|
||||
__tablename__ = 'message_files'
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
file_path: Mapped[str] = mapped_column(nullable=False)
|
||||
type: Mapped[Optional[str]] = mapped_column(nullable=True)
|
||||
file_name: Mapped[str] = mapped_column(nullable=False)
|
||||
file_size: Mapped[int] = mapped_column(BigInteger(), nullable=True, comment='Размер файла в байтах')
|
||||
|
||||
message_id: Mapped[int] = mapped_column(ForeignKey('messages.id'))
|
||||
message: Mapped['Message'] = relationship(
|
||||
'Message',
|
||||
lazy='noload',
|
||||
back_populates='file',
|
||||
)
|
||||
|
||||
|
||||
class MessageStatus(enum.Enum):
|
||||
sending = 'SENDING'
|
||||
success = 'SUCCESS'
|
||||
@@ -125,6 +142,7 @@ class Message(BaseModel):
|
||||
created_at: Mapped[datetime] = mapped_column(nullable=False)
|
||||
status: Mapped[MessageStatus] = mapped_column(Enum(MessageStatus), nullable=False)
|
||||
is_deleted: Mapped[bool] = mapped_column(default=False, server_default='0', nullable=False)
|
||||
is_edited: Mapped[bool] = mapped_column(default=False, server_default='0', nullable=False)
|
||||
|
||||
tg_sender_id: Mapped[Optional[int]] = mapped_column(
|
||||
ForeignKey('tg_users.id'),
|
||||
@@ -152,3 +170,9 @@ class Message(BaseModel):
|
||||
lazy='noload',
|
||||
back_populates='messages',
|
||||
)
|
||||
|
||||
file: Mapped[Optional[MessageFile]] = relationship(
|
||||
'MessageFile',
|
||||
back_populates='message',
|
||||
lazy='selectin',
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user