PaperParser/app/models/task.py

28 lines
1.0 KiB
Python

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)