diff --git a/src/database.py b/src/database.py index 479a26a9..50ebad76 100644 --- a/src/database.py +++ b/src/database.py @@ -88,11 +88,25 @@ ) -# meme_raw_upload = Table( -# "meme_raw_upload", -# metadata, -# TODO: columns TBD, probably also JSONBs to store all raw data -# ) +meme_raw_upload = Table( + "meme_raw_upload", + metadata, + Column("id", Integer, Identity(), primary_key=True), + Column("message_id", Integer, nullable=False), + Column("chat", JSONB, nullable=False), + + Column("content", String), + Column("date", DateTime, nullable=False), + + Column("out_links", JSONB), + Column("mentions", JSONB), + Column("hashtags", JSONB), + Column("forwarded", JSONB), + Column("media", JSONB), + + Column("created_at", DateTime, server_default=func.now(), nullable=False), + Column("updated_at", DateTime, onupdate=func.now()) +) meme = Table( diff --git a/src/storage/schemas.py b/src/storage/schemas.py index 56227070..66a4dc96 100644 --- a/src/storage/schemas.py +++ b/src/storage/schemas.py @@ -17,3 +17,18 @@ class OcrResult(CustomModel): model: str result: dict calculated_at: datetime = Field(default_factory=datetime.utcnow) + + +class MemeUserUpload(CustomModel): + message_id: int + chat: dict + + content: str | None = None + date: datetime + + out_links: list[str] | None = None + mentions: list[str] | None = None # mentioned usernames + hashtags: list[str] | None = None + forwarded: dict | None = None + media: list[dict] | None = None +