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):
|
||||
with open("data/" + filename + ".csv", newline="") as file:
|
||||
with open("init_data/" + filename + ".csv", newline="") as file:
|
||||
reader = csv.reader(file, delimiter=",")
|
||||
next(reader, None) # skip header
|
||||
return list(reader)
|
||||
@ -11,12 +11,10 @@ def load_csv(filename):
|
||||
|
||||
# @todo CSV-Writer
|
||||
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=",")
|
||||
|
||||
|
||||
# @todo Complete CSV Files
|
||||
# @todo Reload Static Data
|
||||
# Reload static database data, this has to be called from the app context
|
||||
def reload_static_data(db):
|
||||
print("Initializing DataBase with Static Values...")
|
||||
@ -24,23 +22,20 @@ def reload_static_data(db):
|
||||
db.create_all()
|
||||
|
||||
# Clear static data
|
||||
Team.query.delete()
|
||||
Driver.query.delete()
|
||||
Race.query.delete()
|
||||
RaceResult.query.delete()
|
||||
User.query.delete()
|
||||
Guess.query.delete()
|
||||
|
||||
# Reload static data
|
||||
for row in load_csv("teams"):
|
||||
db.session.add(Team().from_csv(row))
|
||||
for row in load_csv("drivers"):
|
||||
db.session.add(Driver().from_csv(row))
|
||||
for row in load_csv("races"):
|
||||
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"):
|
||||
db.session.add(User().from_csv(row))
|
||||
for row in load_csv("guesses"):
|
||||
db.session.add(Guess().from_csv(row))
|
||||
|
||||
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()
|
||||
|
||||
|
||||
# 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
|
||||
class Race(db.Model):
|
||||
__tablename__ = "race"
|
||||
@ -18,30 +29,40 @@ class Race(db.Model):
|
||||
return self
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
|
||||
grandprix: Mapped[str] = mapped_column(String(32))
|
||||
|
||||
number: Mapped[int] = mapped_column(Integer)
|
||||
|
||||
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
|
||||
class Driver(db.Model):
|
||||
__tablename__ = "driver"
|
||||
|
||||
def from_csv(self, row):
|
||||
self.name = str(row[0])
|
||||
self.team = str(row[1])
|
||||
self.country_code = str(row[2])
|
||||
self.abbr = str(row[1])
|
||||
self.team_id = str(row[2])
|
||||
self.country_code = str(row[3])
|
||||
return self
|
||||
|
||||
name: Mapped[str] = mapped_column(String(32), primary_key=True)
|
||||
|
||||
team: Mapped[str] = mapped_column(String(32))
|
||||
|
||||
abbr: Mapped[str] = mapped_column(String(3))
|
||||
team_id: 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_id])
|
||||
|
||||
|
||||
class RaceResult(db.Model):
|
||||
__tablename__ = "raceresult"
|
||||
@ -49,31 +70,133 @@ class RaceResult(db.Model):
|
||||
def from_csv(self, row):
|
||||
self.id = int(row[0])
|
||||
self.race_id = str(row[1])
|
||||
self.p10_id = str(row[2])
|
||||
self.dnf_id = str(row[3])
|
||||
self.p01_id = str(row[2])
|
||||
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
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
|
||||
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"))
|
||||
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])
|
||||
|
||||
dnf_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||
dnf: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf_id]) # Only store first DNF
|
||||
|
||||
|
||||
# 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)
|
||||
p11: Mapped["Driver"] = relationship("Driver", foreign_keys=[p11_id])
|
||||
p12: Mapped["Driver"] = relationship("Driver", foreign_keys=[p12_id])
|
||||
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])
|
||||
p16: Mapped["Driver"] = relationship("Driver", foreign_keys=[p16_id])
|
||||
p17: Mapped["Driver"] = relationship("Driver", foreign_keys=[p17_id])
|
||||
p18: Mapped["Driver"] = relationship("Driver", foreign_keys=[p18_id])
|
||||
p19: Mapped["Driver"] = relationship("Driver", foreign_keys=[p19_id])
|
||||
p20: Mapped["Driver"] = relationship("Driver", foreign_keys=[p20_id])
|
||||
dnf01: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf01_id])
|
||||
dnf02: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf02_id])
|
||||
dnf03: Mapped["Driver"] = relationship("Driver", foreign_keys=[dnf03_id])
|
||||
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
|
||||
@ -81,32 +204,37 @@ class User(db.Model):
|
||||
# At least 1 podium
|
||||
|
||||
|
||||
# This table contains guesses made by users
|
||||
class Guess(db.Model):
|
||||
__tablename__ = "guess"
|
||||
# This table contains race guesses made by users
|
||||
class RaceGuess(db.Model):
|
||||
__tablename__ = "raceguess"
|
||||
|
||||
def from_csv(self, row):
|
||||
self.id = int(row[0])
|
||||
self.user_id = str(row[1])
|
||||
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.raceresult_id = int(row[5])
|
||||
return self
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
|
||||
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: Mapped["Race"] = relationship("Race", foreign_keys=[race_id])
|
||||
|
||||
p10_id: Mapped[str] = mapped_column(ForeignKey("driver.name"))
|
||||
p10: Mapped["Driver"] = relationship("Driver", foreign_keys=[p10_id])
|
||||
|
||||
pXX_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])
|
||||
|
||||
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