This commit is contained in:
Artem Tsyrulnikov
2026-04-06 19:27:27 +03:00
commit 477ddb8bf9
38 changed files with 1916 additions and 0 deletions

29
app/models/hackathon.py Normal file
View File

@@ -0,0 +1,29 @@
from datetime import datetime
from sqlmodel import SQLModel, Field, Relationship
class Hackathon(SQLModel, table=True):
__tablename__ = "hackathons"
id: int | None = Field(default=None, primary_key=True)
title: str = Field(max_length=200)
description: str
start_date: datetime
end_date: datetime
organizer_id: int = Field(foreign_key="users.id")
# Relationships
organizer: "User" = Relationship(back_populates="organized_hackathons")
participants: list["HackathonParticipant"] = Relationship(
back_populates="hackathon",
sa_relationship_kwargs={"cascade": "all, delete"},
)
teams: list["Team"] = Relationship(
back_populates="hackathon",
sa_relationship_kwargs={"cascade": "all, delete"},
)
tasks: list["Task"] = Relationship(
back_populates="hackathon",
sa_relationship_kwargs={"cascade": "all, delete"},
)