"""Task Template database table."""
from sqlalchemy import VARCHAR, ForeignKey, Integer, UniqueConstraint
from sqlalchemy.orm import Mapped, mapped_column, relationship
from jobmon.core.serializers import SerializeClientTaskTemplate
from jobmon.server.web.models import Base
[docs]
class TaskTemplate(Base):
"""Task Template database table."""
[docs]
__tablename__ = "task_template"
[docs]
def to_wire_as_client_task_template(self) -> tuple:
"""Serialize Task Template."""
# serialized = SerializeClientTool.to_wire(id=self.id, name=self.name)
# return serialized
return SerializeClientTaskTemplate.to_wire(
self.id, self.tool_version_id, self.name
)
[docs]
id: Mapped[int] = mapped_column(Integer, primary_key=True)
[docs]
name: Mapped[str] = mapped_column(VARCHAR(255), nullable=False)
# orm relationship
[docs]
task_template_versions = relationship(
"TaskTemplateVersion", back_populates="task_template"
)
[docs]
__table_args__ = (
UniqueConstraint("tool_version_id", "name", name="uc_tool_version_id_name"),
)