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 import os
from datetime import datetime
from os.path import dirname, join from os.path import dirname, join
from typing import List, Optional from typing import List, Optional
from uuid import UUID from uuid import UUID
from dotenv import load_dotenv 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 from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, relationship
load_dotenv(join(dirname(__file__), '..', '.env')) load_dotenv(join(dirname(__file__), '..', '.env'))
@@ -44,17 +45,23 @@ class Post(Base):
__tablename__ = 'post' __tablename__ = 'post'
uuid: Mapped[UUID] = mapped_column(primary_key=True) 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')) from_user_id: Mapped[int] = mapped_column(ForeignKey('admin.user_id'))
user: Mapped['Admin'] = relationship(back_populates='posts') user: Mapped['Admin'] = relationship(back_populates='posts')
text: Mapped[str] text: Mapped[str]
media_group_id: Mapped[str]
images: Mapped[List['Image']] = relationship(back_populates='post', cascade='all, delete') 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): class Image(Base):
__tablename__ = 'photo' __tablename__ = 'photo'
message_id: Mapped[int] = mapped_column(primary_key=True) message_id: Mapped[int] = mapped_column(primary_key=True)
media_group_id: Mapped[int]
post: Mapped['Post'] = relationship(back_populates='images') post: Mapped['Post'] = relationship(back_populates='images')
post_id: Mapped[int] = mapped_column(ForeignKey('post.uuid')) post_id: Mapped[int] = mapped_column(ForeignKey('post.uuid'))
file_id: Mapped[str]
if __name__ == '__main__': if __name__ == '__main__':
Base.metadata.create_all(engine) Base.metadata.create_all(engine)