Datetime and posted fields

This commit is contained in:
2023-11-04 05:29:27 +03:00
parent aca1768f86
commit cf076fccb5

View File

@@ -1,10 +1,11 @@
import os
from datetime import datetime
from os.path import dirname, join
from typing import List, Optional
from uuid import UUID
from dotenv import load_dotenv
from sqlalchemy import ForeignKey, create_engine
from sqlalchemy import Column, DateTime, ForeignKey, create_engine
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, relationship
load_dotenv(join(dirname(__file__), '..', '.env'))
@@ -44,17 +45,23 @@ class Post(Base):
__tablename__ = 'post'
uuid: Mapped[UUID] = mapped_column(primary_key=True)
posted: Mapped[bool] = mapped_column(default=False)
from_user_id: Mapped[int] = mapped_column(ForeignKey('admin.user_id'))
user: Mapped['Admin'] = relationship(back_populates='posts')
text: Mapped[str]
media_group_id: Mapped[str]
images: Mapped[List['Image']] = relationship(back_populates='post', cascade='all, delete')
timestamp = Column(DateTime, default=datetime.utcnow)
def __repr__(self) -> str:
return f"UUID: {self.uuid}. From_user_id: {self.from_user_id}. media group id: {self.media_group_id}. Text: {self.text}"
class Image(Base):
__tablename__ = 'photo'
message_id: Mapped[int] = mapped_column(primary_key=True)
media_group_id: Mapped[int]
post: Mapped['Post'] = relationship(back_populates='images')
post_id: Mapped[int] = mapped_column(ForeignKey('post.uuid'))
file_id: Mapped[str]
if __name__ == '__main__':
Base.metadata.create_all(engine)