feat(db): Score related Database methods

This commit is contained in:
283375 2023-08-31 21:03:10 +08:00
parent 35e6fde664
commit daf2a46632
Signed by: 283375
SSH Key Fingerprint: SHA256:UcX0qg6ZOSDOeieKPGokA5h7soykG61nz2uxuQgVLSk

View File

@ -1,7 +1,7 @@
import logging
from typing import Optional, Union
from sqlalchemy import Engine, inspect, select
from sqlalchemy import Engine, func, inspect, select
from sqlalchemy.orm import sessionmaker
from .models.config import *
@ -138,6 +138,28 @@ class Database(metaclass=Singleton):
# endregion
# region Score
def get_scores(self):
stmt = select(Score)
with self.sessionmaker() as session:
results = list(session.scalars(stmt))
return results
def get_score_by_id(self, score_id: int):
stmt = select(Score).where(Score.id == score_id)
with self.sessionmaker() as session:
result = session.scalar(stmt)
return result
def count_scores(self):
stmt = select(func.count(Score.id))
with self.sessionmaker() as session:
result = session.scalar(stmt)
return result or 0
# endregion
def get_b30(self):
stmt = select(CalculatedPotential.b30).select_from(CalculatedPotential)
with self.sessionmaker() as session: