All checks were successful
Build Formula10 Docker Image / build-docker (push) Successful in 14s
31 lines
959 B
Python
31 lines
959 B
Python
from typing import List
|
|
from sqlalchemy import String, ForeignKey
|
|
from sqlalchemy.orm import mapped_column, Mapped, relationship
|
|
|
|
from formula10.database.model.team import Team
|
|
from formula10 import db
|
|
|
|
|
|
class Driver(db.Model):
|
|
"""
|
|
A F1 driver.
|
|
It stores the corresponding team + name abbreviation.
|
|
"""
|
|
__tablename__ = "driver"
|
|
|
|
@staticmethod
|
|
def from_csv(row: List[str]):
|
|
driver: Driver = Driver()
|
|
driver.name = str(row[0])
|
|
driver.abbr = str(row[1])
|
|
driver.team_name = str(row[2])
|
|
driver.country_code = str(row[3])
|
|
return driver
|
|
|
|
name: Mapped[str] = mapped_column(String(32), primary_key=True)
|
|
abbr: Mapped[str] = mapped_column(String(4))
|
|
team_name: Mapped[str] = mapped_column(ForeignKey("team.name"))
|
|
country_code: Mapped[str] = mapped_column(String(2)) # alpha-2 code
|
|
|
|
# Relationships
|
|
team: Mapped["Team"] = relationship("Team", foreign_keys=[team_name]) |