import datetime from sqlalchemy import Integer, DateTime from sqlalchemy.schema import Column, ForeignKey from sqlalchemy.orm import Mapped, mapped_column, relationship from app.extensions import db from app.models.collection import Collection class Task(db.Model): id: Mapped[int] = mapped_column(primary_key=True) task_id: Mapped[str] = mapped_column(nullable=True) name: Mapped[str] = mapped_column(unique=True) session_id = Column(Integer, ForeignKey("session.id")) session: Mapped['Session'] = relationship("Session", back_populates="tasks") collection_id = Column(Integer, ForeignKey("collection.id")) collection: Mapped['Collection'] = relationship('Collection', back_populates='tasks') datetime: Mapped[DateTime] = Column(DateTime, default=datetime.datetime.utcnow()) status: Mapped[str] status_message: Mapped[str] type: Mapped[str] url: Mapped[str] = mapped_column(nullable=True) message: Mapped[str] = mapped_column(nullable=True) file: Mapped[str] = mapped_column(nullable=True)