diff --git a/backend/app/models/__init__.py b/backend/app/models/__init__.py index 5151832..e20c15b 100644 --- a/backend/app/models/__init__.py +++ b/backend/app/models/__init__.py @@ -8,6 +8,7 @@ from app.models.discipline import Discipline from app.models.style import Style from app.models.fee import Fee from app.models.rule import Rule +from app.models.judge import Judge __all__ = [ "User", @@ -21,4 +22,5 @@ __all__ = [ "Style", "Fee", "Rule", + "Judge", ] diff --git a/backend/app/models/judge.py b/backend/app/models/judge.py new file mode 100644 index 0000000..1f602d7 --- /dev/null +++ b/backend/app/models/judge.py @@ -0,0 +1,22 @@ +import uuid +from datetime import datetime + +from sqlalchemy import DateTime, ForeignKey, Integer, String, Text, Uuid, func +from sqlalchemy.orm import Mapped, mapped_column, relationship + +from app.database import Base + + +class Judge(Base): + __tablename__ = "judges" + + id: Mapped[uuid.UUID] = mapped_column(Uuid(as_uuid=True), primary_key=True, default=uuid.uuid4) + championship_id: Mapped[uuid.UUID] = mapped_column(Uuid(as_uuid=True), ForeignKey("championships.id", ondelete="CASCADE"), nullable=False) + name: Mapped[str] = mapped_column(String(255), nullable=False) + instagram: Mapped[str | None] = mapped_column(String(255)) + bio: Mapped[str | None] = mapped_column(Text) + photo_url: Mapped[str | None] = mapped_column(String(2048)) + sort_order: Mapped[int] = mapped_column(Integer, default=0) + created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), server_default=func.now()) + + championship: Mapped["Championship"] = relationship(back_populates="judges_list") # type: ignore[name-defined]