feat: major rewrite of the webserver

gets rid of __init__ and runserver in favor of new modular design
also introduces db model, first api endpoints, as well as their wrappers
This commit is contained in:
2025-05-11 01:30:32 +02:00
parent 96e2c53484
commit c1facf00fb
12 changed files with 532 additions and 72 deletions

View File

@@ -0,0 +1,86 @@
from flask_sqlalchemy import SQLAlchemy
import toml
global db
def initDB(app, config):
tablenameprefix = config['general']['db_prefix'] + "_lewangoalski_"
db = SQLAlchemy(app)
class sportowcy(db.Model):
__tablename__ = tablenameprefix + "sportowcy"
id_zawodnika = db.Column(db.Integer, primary_key=True)
data_urodzenia = db.Column(db.String(10))
czy_aktywny = db.Column(db.Boolean)
klub = db.Column(db.String(63))
narodowosc = db.Column(db.String(3))
ilosc_trofeow = db.Column(db.Integer)
ostatnie_trofeum = db.Column(db.Integer)
pierwszy_mecz = db.Column(db.Integer)
# ostatni_mecz = db.Column(db.Integer) # statystyki_sportowcow już to przechowuje
wycena = db.Column(db.BigInteger)
ostatni_gol_dla = db.Column(db.String(3))
statystyka = db.Column(db.Integer)
class trofea(db.Model):
__tablename__ = tablenameprefix + "trofea"
id_trofeum = db.Column(db.Integer, primary_key=True)
id_zawodnika = db.Column(db.Integer) # != None
nazwa = db.Column(db.String(127))
sezon = db.Column(db.String(9))
rok = db.Column(db.String(4))
class sportowcy_w_meczach(db.Model):
__tablename__ = tablenameprefix + "sportowcy_w_meczach"
id_rekordu = db.Column(db.Integer, primary_key=True)
id_zawodnika = db.Column(db.Integer) # != None
zewnetrzne_id_meczu = db.Column(db.Integer) # != None
czas_gry = db.Column(db.Integer)
goli = db.Column(db.Integer)
asyst = db.Column(db.Integer)
interwencje_bramkarza = db.Column(db.Integer)
suma_interwencji_na_bramke = db.Column(db.Integer)
zolte_kartki = db.Column(db.Integer)
czerwone_kartki = db.Column(db.Integer)
wygrana = db.Column(db.Integer)
wynik = db.Column(db.Float)
class statystyki_sportowcow(db.Model):
__tablename__ = tablenameprefix + "statystyki_sportowcow"
id_statystyki = db.Column(db.Integer, primary_key=True)
ostatni_mecz = db.Column(db.Integer)
ilosc_wystapien = db.Column(db.Integer)
minut_gry = db.Column(db.BigInteger)
gier_sum = db.Column(db.Integer)
goli_sum = db.Column(db.Integer)
asyst_sum = db.Column(db.Integer)
interwencji_sum = db.Column(db.Integer)
nieobronionych_interwencji_sum = db.Column(db.Integer)
zoltych_kartek_sum = db.Column(db.Integer)
czerwonych_kartek_sum = db.Column(db.Integer)
wygranych_sum = db.Column(db.Integer)
wynik_sum = db.Column(db.Integer)
meczow_do_wynikow_sum = db.Column(db.Integer)
class kluby(db.Model):
__tablename__ = tablenameprefix + "kluby"
id_klubu = db.Column(db.String(63), primary_key=True)
pelna_nazwa = db.Column(db.String(63))
skrocona_nazwa = db.Column(db.String(3))
class mecze(db.Model):
__tablename__ = tablenameprefix + "mecze"
id_meczu = db.Column(db.Integer, primary_key=True)
zewnetrzne_id_meczu = db.Column(db.String(15)) # != None
data = db.Column(db.DateTime)
gospodarze = db.Column(db.String(3))
goscie = db.Column(db.String(3))
gosp_wynik = db.Column(db.Integer)
gosc_wynik = db.Column(db.Integer)
sezon = db.Column(db.String(9))
nazwa_turnieju = db.Column(db.String(127))
skrocona_nazwa_turnieju = db.Column(db.String(15))
flaga = db.Column(db.Integer)
return db