Basisimplementierung für Mailversandt.
This commit is contained in:
parent
8505e9217a
commit
531b9cb10e
14 changed files with 520 additions and 41 deletions
|
|
@ -1,7 +1,9 @@
|
|||
import enum, uuid
|
||||
from datetime import datetime
|
||||
from sqlalchemy import String, Enum, ForeignKey, Integer, DateTime, JSON
|
||||
from sqlalchemy import LargeBinary, Index
|
||||
from sqlalchemy.orm import relationship, Mapped, mapped_column
|
||||
from sqlalchemy.dialects.postgresql import UUID
|
||||
from sqlalchemy.dialects.postgresql import UUID, TIMESTAMP
|
||||
from sqlalchemy.sql import func
|
||||
from app.db import Base
|
||||
|
||||
|
|
@ -52,3 +54,22 @@ class TaskDependency(Base):
|
|||
__tablename__ = "task_dependencies"
|
||||
task_id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), ForeignKey("tasks.id", ondelete="CASCADE"), primary_key=True)
|
||||
depends_on_task_id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), ForeignKey("tasks.id", ondelete="CASCADE"), primary_key=True)
|
||||
|
||||
|
||||
class Message(Base):
|
||||
__tablename__ = "messages"
|
||||
|
||||
id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
|
||||
mailbox_id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), nullable=False, index=True)
|
||||
message_id: Mapped[str | None]= mapped_column(String(512), index=True, nullable=True)
|
||||
subject: Mapped[str | None] = mapped_column(String(2048))
|
||||
from_addr: Mapped[str | None] = mapped_column(String(2048))
|
||||
to_addr: Mapped[str | None] = mapped_column(String(4096))
|
||||
date_header: Mapped[datetime | None] = mapped_column(TIMESTAMP(timezone=True), nullable=True)
|
||||
received_at: Mapped[datetime] = mapped_column(TIMESTAMP(timezone=True), default=datetime.utcnow, nullable=False)
|
||||
raw_eml: Mapped[bytes] = mapped_column(LargeBinary, nullable=False)
|
||||
|
||||
Index("ix_messages_date", Message.date_header)
|
||||
Index("ix_messages_message_id", Message.message_id)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue