feat: change DB, represent players by id
This commit is contained in:
parent
cfe2df01f7
commit
33c505fee4
37
db.py
37
db.py
@ -2,18 +2,21 @@ from datetime import datetime, timezone
|
||||
from sqlmodel import (
|
||||
ARRAY,
|
||||
Column,
|
||||
Integer,
|
||||
Relationship,
|
||||
SQLModel,
|
||||
Field,
|
||||
create_engine,
|
||||
String,
|
||||
)
|
||||
|
||||
with open("db.secrets", "r") as f:
|
||||
db_secrets = f.readline().strip()
|
||||
|
||||
engine = create_engine(
|
||||
db_secrets, pool_timeout=20, pool_size=2, connect_args={"connect_timeout": 8}
|
||||
db_secrets,
|
||||
pool_timeout=20,
|
||||
pool_size=2,
|
||||
connect_args={"connect_timeout": 8},
|
||||
)
|
||||
del db_secrets
|
||||
|
||||
@ -41,37 +44,33 @@ class Team(SQLModel, table=True):
|
||||
|
||||
class Player(SQLModel, table=True):
|
||||
id: int | None = Field(default=None, primary_key=True)
|
||||
name: str
|
||||
username: str = Field(default=None, unique=True)
|
||||
display_name: str
|
||||
email: str | None = None
|
||||
full_name: str | None = None
|
||||
disabled: bool | None = None
|
||||
hashed_password: str | None = None
|
||||
number: str | None = None
|
||||
teams: list[Team] | None = Relationship(
|
||||
back_populates="players", link_model=PlayerTeamLink
|
||||
)
|
||||
scopes: str = ""
|
||||
|
||||
|
||||
class Chemistry(SQLModel, table=True):
|
||||
id: int | None = Field(default=None, primary_key=True)
|
||||
time: datetime | None = Field(default_factory=utctime)
|
||||
user: str
|
||||
love: list[str] = Field(sa_column=Column(ARRAY(String)))
|
||||
hate: list[str] = Field(sa_column=Column(ARRAY(String)))
|
||||
undecided: list[str] = Field(sa_column=Column(ARRAY(String)))
|
||||
user: int | None = Field(default=None, foreign_key="player.id")
|
||||
hate: list[int] = Field(sa_column=Column(ARRAY(Integer)))
|
||||
undecided: list[int] = Field(sa_column=Column(ARRAY(Integer)))
|
||||
love: list[int] = Field(sa_column=Column(ARRAY(Integer)))
|
||||
|
||||
|
||||
class MVPRanking(SQLModel, table=True):
|
||||
id: int | None = Field(default=None, primary_key=True)
|
||||
time: datetime | None = Field(default_factory=utctime)
|
||||
user: str
|
||||
mvps: list[str] = Field(sa_column=Column(ARRAY(String)))
|
||||
|
||||
|
||||
class User(SQLModel, table=True):
|
||||
username: str = Field(default=None, primary_key=True)
|
||||
email: str | None = None
|
||||
full_name: str | None = None
|
||||
disabled: bool | None = None
|
||||
hashed_password: str | None = None
|
||||
player_id: int | None = Field(default=None, foreign_key="player.id")
|
||||
scopes: str = ""
|
||||
user: int | None = Field(default=None, foreign_key="player.id")
|
||||
mvps: list[int] = Field(sa_column=Column(ARRAY(Integer)))
|
||||
|
||||
|
||||
SQLModel.metadata.create_all(engine)
|
||||
|
Loading…
x
Reference in New Issue
Block a user