ffmol-rdkit / backend /app /db /models.py
hercules168's picture
Upload 44 files
40ad0f5 verified
Raw
History Blame Contribute Delete
1.26 kB
from sqlalchemy import ForeignKey, Text
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, relationship
class Base(DeclarativeBase):
pass
class Project(Base):
__tablename__ = "projects"
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str] = mapped_column()
drug_name: Mapped[str | None] = mapped_column(Text, nullable=True)
structure_input: Mapped[str] = mapped_column(Text)
structure_format: Mapped[str] = mapped_column()
target_name: Mapped[str] = mapped_column()
indication: Mapped[str | None] = mapped_column(Text, nullable=True)
mechanism: Mapped[str | None] = mapped_column(Text, nullable=True)
patent_text: Mapped[str | None] = mapped_column(Text, nullable=True)
jobs: Mapped[list["Job"]] = relationship(back_populates="project")
class Job(Base):
__tablename__ = "jobs"
id: Mapped[int] = mapped_column(primary_key=True)
project_id: Mapped[int] = mapped_column(ForeignKey("projects.id"))
status: Mapped[str] = mapped_column(default="created")
error: Mapped[str | None] = mapped_column(Text, nullable=True)
artifact_json: Mapped[str | None] = mapped_column(Text, nullable=True)
project: Mapped[Project] = relationship(back_populates="jobs")