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