Update model to include full race result
All checks were successful
Build Formula10 Docker Image / build-docker (push) Successful in 1m47s

This commit is contained in:
2024-02-16 17:59:50 +01:00
parent ea34413b3c
commit adf6d6e99a

View File

@ -83,32 +83,66 @@ class User(db.Model):
class RaceResult(db.Model): class RaceResult(db.Model):
__tablename__ = "raceresult" __tablename__ = "raceresult"
__csv_header__ = ["id", "race_id", "pxx_id", "dnf_id"] __csv_header__ = ["id", "race_id", "pxx_ids_json", "dnf_ids_json"]
def from_csv(self, row): def from_csv(self, row):
self.id = int(row[0]) self.id = int(row[0])
self.race_id = int(row[1]) self.race_id = int(row[1])
self.pxx_id = str(row[2]) self.pxx_ids_json = str(row[2])
self.dnf_id = str(row[3]) self.dnf_ids_json = str(row[3])
return self return self
def to_csv(self): def to_csv(self):
return [ return [
self.id, self.id,
self.race_id, self.race_id,
self.pxx_id, self.pxx_ids_json,
self.dnf_id self.dnf_ids_json
] ]
id: Mapped[int] = mapped_column(Integer, primary_key=True) id: Mapped[int] = mapped_column(Integer, primary_key=True)
race_id: Mapped[int] = mapped_column(ForeignKey("race.id")) race_id: Mapped[int] = mapped_column(ForeignKey("race.id"))
pxx_id: Mapped[str] = mapped_column(ForeignKey("driver.name")) pxx_ids_json: Mapped[str] = mapped_column(String(1024))
dnf_id: Mapped[str] = mapped_column(ForeignKey("driver.name")) dnf_ids_json: Mapped[str] = mapped_column(String(1024))
@property
def pxx_ids(self) -> List[str]:
return json.loads(self.pxx_ids_json)
@pxx_ids.setter
def pxx_ids(self, new_pxx_ids: List[str]):
self.pxx_ids_json = json.dumps(new_pxx_ids)
@property
def dnf_ids(self) -> List[str]:
return json.loads(self.dnf_ids_json)
@dnf_ids.setter
def dnf_ids(self, new_dnf_ids: List[str]):
self.dnf_ids_json = json.dumps(new_dnf_ids)
# Relationships # Relationships
race: Mapped["Race"] = relationship("Race", foreign_keys=[race_id]) race: Mapped["Race"] = relationship("Race", foreign_keys=[race_id])
pxx: Mapped["Driver"] = relationship("Driver", foreign_keys=[pxx_id]) _pxxs = None
dnf: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf_id]) _dnfs = None
@property
def pxxs(self) -> List[Driver]:
if self._pxxs is None:
self._pxxs = [
driver for driver in Driver.query.all() if driver.name in self.pxx_ids
]
return self._pxxs
@property
def dnfs(self) -> List[Driver]:
if self._dnfs is None:
self._dnfs = [
driver for driver in Driver.query.all() if driver.name in self.dnf_ids
]
return self._dnfs
class RaceGuess(db.Model): class RaceGuess(db.Model):