Update database model for new guesses
This commit is contained in:
@ -1,23 +0,0 @@
|
|||||||
name,team,country_code
|
|
||||||
NONE,NONE,NO
|
|
||||||
Max Verstappen,RedBull,NL
|
|
||||||
Sergio Perez,RedBull,MX
|
|
||||||
Lewis Hamilton,Mercedes,UK
|
|
||||||
George Russel,Mercedes,UK
|
|
||||||
Charles Leclerc,Ferrari,MC
|
|
||||||
Carlos Sainz,Ferrari,ES
|
|
||||||
Lando Norris,McLaren,UK
|
|
||||||
Oscar Piastri,McLaren,AU
|
|
||||||
Fernando Alonso,Aston Martin,ES
|
|
||||||
Lance Stroll,Aston Martin,CA
|
|
||||||
Pierre Gasly,Alpine,FR
|
|
||||||
Esteban Ocon,Alpine,FR
|
|
||||||
Alexander Albon,Williams,TH
|
|
||||||
Logan Sargeant,Williams,US
|
|
||||||
Yuki Tsunoda,AlphaTauri,JP
|
|
||||||
Daniel Ricciardo,AlphaTauri,AU
|
|
||||||
Valteri Bottas,Alfa Romeo,FL
|
|
||||||
Zhou Guanyu,Alfa Romeo,CN
|
|
||||||
Nico Hulkenberg,Haas,DE
|
|
||||||
Kevin Magnussen,Haas,DK
|
|
||||||
Nyck de Vries,AlphaTauri,NL
|
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
id,user_id,race_id,p10_id,dnf_id,raceresult_id
|
|
||||||
1,Henri,1,Valteri Bottas,Zhou Guanyu,1
|
|
||||||
2,Henri,2,Valteri Bottas,Logan Sargeant,2
|
|
||||||
3,Henri,3,Alexander Albon,Valteri Bottas,3
|
|
||||||
4,Henri,4,Oscar Piastri,Nyck de Vries,4
|
|
||||||
5,Henri,5,Esteban Ocon,Charles Leclerc,5
|
|
||||||
6,Henri,7,Yuki Tsunoda,Charles Leclerc,6
|
|
||||||
7,Henri,8,Charles Leclerc,Carlos Sainz,7
|
|
||||||
8,Henri,9,Oscar Piastri,Kevin Magnussen,8
|
|
||||||
9,Henri,10,Alexander Albon,NONE,9
|
|
||||||
10,Henri,11,Pierre Gasly,Yuki Tsunoda,10
|
|
||||||
11,Henri,12,Esteban Ocon,Kevin Magnussen,11
|
|
||||||
12,Henri,13,Lance Stroll,Esteban Ocon,12
|
|
||||||
13,Henri,14,Lance Stroll,Pierre Gasly,13
|
|
||||||
14,Henri,15,Oscar Piastri,Alexander Albon,14
|
|
||||||
15,Henri,16,Pierre Gasly,Logan Sargeant,15
|
|
||||||
16,Henri,17,Fernando Alonso,Logan Sargeant,16
|
|
||||||
17,Henri,18,Alexander Albon,Logan Sargeant,17
|
|
||||||
18,Henri,19,Yuki Tsunoda,Logan Sargeant,18
|
|
||||||
19,Henri,20,Valteri Bottas,Logan Sargeant,19
|
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
id,race_id,p10_id,dnf_id
|
|
||||||
1,1,Alexander Albon,Oscar Piastri
|
|
||||||
2,2,Kevin Magnussen,Lance Stroll
|
|
||||||
3,3,Yuki Tsunoda,Charles Leclerc
|
|
||||||
4,4,Yuki Tsunoda,Nyck de Vries
|
|
||||||
5,5,Kevin Magnussen,NONE
|
|
||||||
6,7,Oscar Piastri,Lance Stroll
|
|
||||||
7,8,Pierre Gasly,NONE
|
|
||||||
8,9,Valteri Bottas,Logan Sargeant
|
|
||||||
9,10,Pierre Gasly,Nico Hulkenberg
|
|
||||||
10,11,Carlos Sainz,Esteban Ocon
|
|
||||||
11,12,Lance Stroll,Pierre Gasly
|
|
||||||
12,13,Yuki Tsunoda,Oscar Piastri
|
|
||||||
13,14,Esteban Ocon,Logan Sargeant
|
|
||||||
14,15,Valteri Bottas,Esteban Ocon
|
|
||||||
15,16,Kevin Magnussen,Yuki Tsunoda
|
|
||||||
16,17,Pierre Gasly,Valteri Bottas
|
|
||||||
17,18,Sergio Perez,Lewis Hamilton
|
|
||||||
18,19,Logan Sargeant,Esteban Ocon
|
|
||||||
19,20,Esteban Ocon,Sergio Perez
|
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
name
|
|
||||||
Henri
|
|
||||||
|
@ -3,7 +3,7 @@ from model import *
|
|||||||
|
|
||||||
|
|
||||||
def load_csv(filename):
|
def load_csv(filename):
|
||||||
with open("data/" + filename + ".csv", newline="") as file:
|
with open("init_data/" + filename + ".csv", newline="") as file:
|
||||||
reader = csv.reader(file, delimiter=",")
|
reader = csv.reader(file, delimiter=",")
|
||||||
next(reader, None) # skip header
|
next(reader, None) # skip header
|
||||||
return list(reader)
|
return list(reader)
|
||||||
@ -11,12 +11,10 @@ def load_csv(filename):
|
|||||||
|
|
||||||
# @todo CSV-Writer
|
# @todo CSV-Writer
|
||||||
def write_csv(filename):
|
def write_csv(filename):
|
||||||
with open("data/" + filename + ".csv", newline="") as file:
|
with open("dynamic_data/" + filename + ".csv", newline="") as file:
|
||||||
writer = csv.writer(file, delimiter=",")
|
writer = csv.writer(file, delimiter=",")
|
||||||
|
|
||||||
|
|
||||||
# @todo Complete CSV Files
|
|
||||||
# @todo Reload Static Data
|
|
||||||
# Reload static database data, this has to be called from the app context
|
# Reload static database data, this has to be called from the app context
|
||||||
def reload_static_data(db):
|
def reload_static_data(db):
|
||||||
print("Initializing DataBase with Static Values...")
|
print("Initializing DataBase with Static Values...")
|
||||||
@ -24,23 +22,20 @@ def reload_static_data(db):
|
|||||||
db.create_all()
|
db.create_all()
|
||||||
|
|
||||||
# Clear static data
|
# Clear static data
|
||||||
|
Team.query.delete()
|
||||||
Driver.query.delete()
|
Driver.query.delete()
|
||||||
Race.query.delete()
|
Race.query.delete()
|
||||||
RaceResult.query.delete()
|
|
||||||
User.query.delete()
|
User.query.delete()
|
||||||
Guess.query.delete()
|
|
||||||
|
|
||||||
# Reload static data
|
# Reload static data
|
||||||
|
for row in load_csv("teams"):
|
||||||
|
db.session.add(Team().from_csv(row))
|
||||||
for row in load_csv("drivers"):
|
for row in load_csv("drivers"):
|
||||||
db.session.add(Driver().from_csv(row))
|
db.session.add(Driver().from_csv(row))
|
||||||
for row in load_csv("races"):
|
for row in load_csv("races"):
|
||||||
db.session.add(Race().from_csv(row))
|
db.session.add(Race().from_csv(row))
|
||||||
for row in load_csv("raceresults"):
|
|
||||||
db.session.add(RaceResult().from_csv(row))
|
|
||||||
for row in load_csv("users"):
|
for row in load_csv("users"):
|
||||||
db.session.add(User().from_csv(row))
|
db.session.add(User().from_csv(row))
|
||||||
for row in load_csv("guesses"):
|
|
||||||
db.session.add(Guess().from_csv(row))
|
|
||||||
|
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
|
|||||||
22
init_data/drivers.csv
Normal file
22
init_data/drivers.csv
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
name,abbr,team_id,country_code
|
||||||
|
NONE,NON,NONE,NO
|
||||||
|
Alexander Albon,ALB,Williams,TH
|
||||||
|
Fernando Alonso,ALO,Aston Martin,ES
|
||||||
|
Valteri Bottas,BOT,Stake,FL
|
||||||
|
Pierre Gasly,GAS,Alpine,FR
|
||||||
|
Lewis Hamilton,HAM,Mercedes,UK
|
||||||
|
Nico Hulkenberg,HUL,Haas,DE
|
||||||
|
Charles Leclerc,LEC,Ferrari,MC
|
||||||
|
Kevin Magnussen,MAG,Haas,DK
|
||||||
|
Lando Norris,NOR,McLaren,UK
|
||||||
|
Esteban Ocon,OCO,Alpine,FR
|
||||||
|
Sergio Perez,PER,RedBull,MX
|
||||||
|
Oscar Piastri,PIA,McLaren,AU
|
||||||
|
Daniel Ricciardo,RIC,VCARB,AU
|
||||||
|
George Russel,RUS,Mercedes,UK
|
||||||
|
Carlos Sainz,SAI,Ferrari,ES
|
||||||
|
Logan Sargeant,SAR,Williams,US
|
||||||
|
Lance Stroll,STR,Aston Martin,CA
|
||||||
|
Yuki Tsunoda,TSU,VCARB,JP
|
||||||
|
Max Verstappen,VER,RedBull,NL
|
||||||
|
Zhou Guanyu,ZHO,Stake,CN
|
||||||
|
11
init_data/teams.csv
Normal file
11
init_data/teams.csv
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
team
|
||||||
|
Alpine
|
||||||
|
Aston Martin
|
||||||
|
Ferrari
|
||||||
|
Haas
|
||||||
|
McLaren
|
||||||
|
Mercedes
|
||||||
|
RedBull
|
||||||
|
Stake
|
||||||
|
VCARB
|
||||||
|
Williams
|
||||||
|
11
init_data/users.csv
Normal file
11
init_data/users.csv
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
name
|
||||||
|
Henri
|
||||||
|
Christoph
|
||||||
|
Vinzent
|
||||||
|
Sven
|
||||||
|
Linus
|
||||||
|
Phil
|
||||||
|
Ipp
|
||||||
|
Melissa
|
||||||
|
Julian
|
||||||
|
Käptn
|
||||||
|
212
model.py
212
model.py
@ -6,6 +6,17 @@ from datetime import datetime
|
|||||||
db = SQLAlchemy()
|
db = SQLAlchemy()
|
||||||
|
|
||||||
|
|
||||||
|
# This table contains users that can guess
|
||||||
|
class User(db.Model):
|
||||||
|
__tablename__ = "user"
|
||||||
|
|
||||||
|
def from_csv(self, row):
|
||||||
|
self.name = str(row[0])
|
||||||
|
return self
|
||||||
|
|
||||||
|
name: Mapped[str] = mapped_column(String(32), primary_key=True)
|
||||||
|
|
||||||
|
|
||||||
# This table contains manifestations of GPs, with dates
|
# This table contains manifestations of GPs, with dates
|
||||||
class Race(db.Model):
|
class Race(db.Model):
|
||||||
__tablename__ = "race"
|
__tablename__ = "race"
|
||||||
@ -18,30 +29,40 @@ class Race(db.Model):
|
|||||||
return self
|
return self
|
||||||
|
|
||||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||||
|
|
||||||
grandprix: Mapped[str] = mapped_column(String(32))
|
grandprix: Mapped[str] = mapped_column(String(32))
|
||||||
|
|
||||||
number: Mapped[int] = mapped_column(Integer)
|
number: Mapped[int] = mapped_column(Integer)
|
||||||
|
|
||||||
date: Mapped[datetime] = mapped_column(DateTime)
|
date: Mapped[datetime] = mapped_column(DateTime)
|
||||||
|
|
||||||
|
|
||||||
|
class Team(db.Model):
|
||||||
|
__tablename__ = "team"
|
||||||
|
|
||||||
|
def from_csv(self, row):
|
||||||
|
self.name = str(row[0])
|
||||||
|
return self
|
||||||
|
|
||||||
|
name: Mapped[str] = mapped_column(String(32), primary_key=True)
|
||||||
|
|
||||||
|
|
||||||
# This table contains drivers and their team associations, e.g. Max Verschtappen
|
# This table contains drivers and their team associations, e.g. Max Verschtappen
|
||||||
class Driver(db.Model):
|
class Driver(db.Model):
|
||||||
__tablename__ = "driver"
|
__tablename__ = "driver"
|
||||||
|
|
||||||
def from_csv(self, row):
|
def from_csv(self, row):
|
||||||
self.name = str(row[0])
|
self.name = str(row[0])
|
||||||
self.team = str(row[1])
|
self.abbr = str(row[1])
|
||||||
self.country_code = str(row[2])
|
self.team_id = str(row[2])
|
||||||
|
self.country_code = str(row[3])
|
||||||
return self
|
return self
|
||||||
|
|
||||||
name: Mapped[str] = mapped_column(String(32), primary_key=True)
|
name: Mapped[str] = mapped_column(String(32), primary_key=True)
|
||||||
|
abbr: Mapped[str] = mapped_column(String(3))
|
||||||
team: Mapped[str] = mapped_column(String(32))
|
team_id: Mapped[str] = mapped_column(ForeignKey("team.name"))
|
||||||
|
|
||||||
country_code: Mapped[str] = mapped_column(String(2)) # alpha-2 code
|
country_code: Mapped[str] = mapped_column(String(2)) # alpha-2 code
|
||||||
|
|
||||||
|
# Relationships
|
||||||
|
team: Mapped["Team"] = relationship("Team", foreign_keys=[team_id])
|
||||||
|
|
||||||
|
|
||||||
class RaceResult(db.Model):
|
class RaceResult(db.Model):
|
||||||
__tablename__ = "raceresult"
|
__tablename__ = "raceresult"
|
||||||
@ -49,31 +70,133 @@ class RaceResult(db.Model):
|
|||||||
def from_csv(self, row):
|
def from_csv(self, row):
|
||||||
self.id = int(row[0])
|
self.id = int(row[0])
|
||||||
self.race_id = str(row[1])
|
self.race_id = str(row[1])
|
||||||
self.p10_id = str(row[2])
|
self.p01_id = str(row[2])
|
||||||
self.dnf_id = str(row[3])
|
self.p02_id = str(row[3])
|
||||||
|
self.p03_id = str(row[4])
|
||||||
|
self.p04_id = str(row[5])
|
||||||
|
self.p05_id = str(row[6])
|
||||||
|
self.p06_id = str(row[7])
|
||||||
|
self.p07_id = str(row[8])
|
||||||
|
self.p08_id = str(row[9])
|
||||||
|
self.p09_id = str(row[10])
|
||||||
|
self.p10_id = str(row[11])
|
||||||
|
self.p11_id = str(row[12])
|
||||||
|
self.p12_id = str(row[13])
|
||||||
|
self.p13_id = str(row[14])
|
||||||
|
self.p14_id = str(row[15])
|
||||||
|
self.p15_id = str(row[16])
|
||||||
|
self.p16_id = str(row[17])
|
||||||
|
self.p17_id = str(row[18])
|
||||||
|
self.p18_id = str(row[19])
|
||||||
|
self.p19_id = str(row[20])
|
||||||
|
self.p20_id = str(row[21])
|
||||||
|
self.dnf01_id = str(row[22])
|
||||||
|
self.dnf02_id = str(row[23])
|
||||||
|
self.dnf03_id = str(row[24])
|
||||||
|
self.dnf04_id = str(row[25])
|
||||||
|
self.dnf05_id = str(row[26])
|
||||||
|
self.dnf06_id = str(row[27])
|
||||||
|
self.dnf07_id = str(row[28])
|
||||||
|
self.dnf08_id = str(row[29])
|
||||||
|
self.dnf09_id = str(row[30])
|
||||||
|
self.dnf10_id = str(row[31])
|
||||||
|
self.dnf11_id = str(row[32])
|
||||||
|
self.dnf12_id = str(row[33])
|
||||||
|
self.dnf13_id = str(row[34])
|
||||||
|
self.dnf14_id = str(row[35])
|
||||||
|
self.dnf15_id = str(row[36])
|
||||||
|
self.dnf16_id = str(row[37])
|
||||||
|
self.dnf17_id = str(row[38])
|
||||||
|
self.dnf18_id = str(row[39])
|
||||||
|
self.dnf19_id = str(row[40])
|
||||||
|
self.dnf20_id = str(row[41])
|
||||||
return self
|
return self
|
||||||
|
|
||||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||||
|
|
||||||
race_id: Mapped[str] = mapped_column(ForeignKey("race.id"))
|
race_id: Mapped[str] = mapped_column(ForeignKey("race.id"))
|
||||||
race: Mapped["Race"] = relationship("Race", foreign_keys=[race_id])
|
p01_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
p02_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
p03_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
p04_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
p05_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
p06_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
p07_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
p08_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
p09_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
p10_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
p10_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
p11_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
p12_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
p13_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
p14_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
p15_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
p16_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
p17_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
p18_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
p19_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
p20_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf01_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf02_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf03_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf04_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf05_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf06_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf07_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf08_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf09_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf10_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf11_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf12_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf13_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf14_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf15_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf16_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf17_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf18_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf19_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
dnf20_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
|
||||||
|
# Relationships
|
||||||
|
race: Mapped["Race"] = relationship("Race", foreign_keys=[race_id])
|
||||||
|
p01: Mapped["Driver"] = relationship("Driver", foreign_keys=[p01_id])
|
||||||
|
p02: Mapped["Driver"] = relationship("Driver", foreign_keys=[p02_id])
|
||||||
|
p03: Mapped["Driver"] = relationship("Driver", foreign_keys=[p03_id])
|
||||||
|
p04: Mapped["Driver"] = relationship("Driver", foreign_keys=[p04_id])
|
||||||
|
p05: Mapped["Driver"] = relationship("Driver", foreign_keys=[p05_id])
|
||||||
|
p06: Mapped["Driver"] = relationship("Driver", foreign_keys=[p06_id])
|
||||||
|
p07: Mapped["Driver"] = relationship("Driver", foreign_keys=[p07_id])
|
||||||
|
p08: Mapped["Driver"] = relationship("Driver", foreign_keys=[p08_id])
|
||||||
|
p09: Mapped["Driver"] = relationship("Driver", foreign_keys=[p09_id])
|
||||||
p10: Mapped["Driver"] = relationship("Driver", foreign_keys=[p10_id])
|
p10: Mapped["Driver"] = relationship("Driver", foreign_keys=[p10_id])
|
||||||
|
p11: Mapped["Driver"] = relationship("Driver", foreign_keys=[p11_id])
|
||||||
dnf_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
p12: Mapped["Driver"] = relationship("Driver", foreign_keys=[p12_id])
|
||||||
dnf: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf_id]) # Only store first DNF
|
p13: Mapped["Driver"] = relationship("Driver", foreign_keys=[p13_id])
|
||||||
|
p14: Mapped["Driver"] = relationship("Driver", foreign_keys=[p14_id])
|
||||||
|
p15: Mapped["Driver"] = relationship("Driver", foreign_keys=[p15_id])
|
||||||
# This table contains users that can guess
|
p16: Mapped["Driver"] = relationship("Driver", foreign_keys=[p16_id])
|
||||||
class User(db.Model):
|
p17: Mapped["Driver"] = relationship("Driver", foreign_keys=[p17_id])
|
||||||
__tablename__ = "user"
|
p18: Mapped["Driver"] = relationship("Driver", foreign_keys=[p18_id])
|
||||||
|
p19: Mapped["Driver"] = relationship("Driver", foreign_keys=[p19_id])
|
||||||
def from_csv(self, row):
|
p20: Mapped["Driver"] = relationship("Driver", foreign_keys=[p20_id])
|
||||||
self.name = str(row[0])
|
dnf01: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf01_id])
|
||||||
return self
|
dnf02: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf02_id])
|
||||||
|
dnf03: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf03_id])
|
||||||
name: Mapped[str] = mapped_column(String(32), primary_key=True)
|
dnf04: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf04_id])
|
||||||
|
dnf05: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf05_id])
|
||||||
|
dnf06: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf06_id])
|
||||||
|
dnf07: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf07_id])
|
||||||
|
dnf08: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf08_id])
|
||||||
|
dnf09: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf09_id])
|
||||||
|
dnf10: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf10_id])
|
||||||
|
dnf11: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf11_id])
|
||||||
|
dnf12: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf12_id])
|
||||||
|
dnf13: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf13_id])
|
||||||
|
dnf14: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf14_id])
|
||||||
|
dnf15: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf15_id])
|
||||||
|
dnf16: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf16_id])
|
||||||
|
dnf17: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf17_id])
|
||||||
|
dnf18: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf18_id])
|
||||||
|
dnf19: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf19_id])
|
||||||
|
dnf20: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf20_id])
|
||||||
|
|
||||||
|
|
||||||
# Per race guesses: PX, DNF
|
# Per race guesses: PX, DNF
|
||||||
@ -81,32 +204,37 @@ class User(db.Model):
|
|||||||
# At least 1 podium
|
# At least 1 podium
|
||||||
|
|
||||||
|
|
||||||
# This table contains guesses made by users
|
# This table contains race guesses made by users
|
||||||
class Guess(db.Model):
|
class RaceGuess(db.Model):
|
||||||
__tablename__ = "guess"
|
__tablename__ = "raceguess"
|
||||||
|
|
||||||
def from_csv(self, row):
|
def from_csv(self, row):
|
||||||
self.id = int(row[0])
|
self.id = int(row[0])
|
||||||
self.user_id = str(row[1])
|
self.user_id = str(row[1])
|
||||||
self.race_id = str(row[2])
|
self.race_id = str(row[2])
|
||||||
self.p10_id = str(row[3])
|
self.pXX_id = str(row[3])
|
||||||
self.dnf_id = str(row[4])
|
self.dnf_id = str(row[4])
|
||||||
self.raceresult_id = int(row[5])
|
|
||||||
return self
|
return self
|
||||||
|
|
||||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||||
|
|
||||||
user_id: Mapped[str] = mapped_column(ForeignKey("user.name"))
|
user_id: Mapped[str] = mapped_column(ForeignKey("user.name"))
|
||||||
user: Mapped["User"] = relationship("User", foreign_keys=[user_id])
|
|
||||||
|
|
||||||
race_id: Mapped[str] = mapped_column(ForeignKey("race.id"))
|
race_id: Mapped[str] = mapped_column(ForeignKey("race.id"))
|
||||||
race: Mapped["Race"] = relationship("Race", foreign_keys=[race_id])
|
pXX_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
|
||||||
p10_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
|
||||||
p10: Mapped["Driver"] = relationship("Driver", foreign_keys=[p10_id])
|
|
||||||
|
|
||||||
dnf_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
dnf_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||||
|
|
||||||
|
# Relationships
|
||||||
|
user: Mapped["User"] = relationship("User", foreign_keys=[user_id])
|
||||||
|
race: Mapped["Race"] = relationship("Race", foreign_keys=[race_id])
|
||||||
|
pXX: Mapped["Driver"] = relationship("Driver", foreign_keys=[pXX_id])
|
||||||
dnf: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf_id])
|
dnf: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf_id])
|
||||||
|
|
||||||
raceresult_id: Mapped[int] = mapped_column(ForeignKey("raceresult.id"))
|
|
||||||
raceresult: Mapped["RaceResult"] = relationship("RaceResult", foreign_keys=[raceresult_id])
|
class SeasonGuess(db.Model):
|
||||||
|
__tablename__ = "seasonguess"
|
||||||
|
|
||||||
|
def from_csv(self, row):
|
||||||
|
return self
|
||||||
|
|
||||||
|
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||||
|
user_id: Mapped[str] = mapped_column(ForeignKey("user.name"))
|
||||||
|
hot_take: Mapped[str] = mapped_column(String(512))
|
||||||
|
|||||||
Reference in New Issue
Block a user