Spaces:
Sleeping
Sleeping
File size: 1,261 Bytes
40ad0f5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 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")
|