/
sorxill
/
Tracker
Обзор
Документация
Войти
/
sorxill
/
Tracker
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/db/models/task.py
34 строки
1 KB
Yaroslav
fix: update db models. rewrite some code
24 янв 2024, 12:03
24 янв 2024, 12:03
53edfea
Код
Авторство
О чём код?
import uuid from sqlalchemy import ForeignKey, String from sqlalchemy.dialects.postgresql import TIMESTAMP, UUID from sqlalchemy.orm import Mapped, mapped_column, relationship from .base import Base class Task(Base): __tablename__ = "tasks" task_id: Mapped[uuid.UUID] = mapped_column( UUID(as_uuid=True), primary_key=True, default=uuid.uuid4 ) project_id: Mapped[uuid.UUID] = mapped_column( ForeignKey("projects.project_id"), nullable=False ) author_id: Mapped[uuid.UUID] = mapped_column( ForeignKey("users.user_id"), nullable=False ) name: Mapped[str] = mapped_column(String, nullable=False) description: Mapped[str] = mapped_column(String, nullable=True) task_type: Mapped[str] = mapped_column(String, nullable=False) collaborators: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), nullable=False) timestamp: Mapped[TIMESTAMP] = mapped_column( type_=TIMESTAMP(timezone=True), nullable=True ) project = relationship("Project", back_populates="project_task") author = relationship("User", back_populates="author_task") def __repr__(self) -> str: return f"Task(task_id={self.task_id!r}, project_id={self.project_id!r})"