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 (
|
from sqlmodel import (
|
||||||
ARRAY,
|
ARRAY,
|
||||||
Column,
|
Column,
|
||||||
|
Integer,
|
||||||
Relationship,
|
Relationship,
|
||||||
SQLModel,
|
SQLModel,
|
||||||
Field,
|
Field,
|
||||||
create_engine,
|
create_engine,
|
||||||
String,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
with open("db.secrets", "r") as f:
|
with open("db.secrets", "r") as f:
|
||||||
db_secrets = f.readline().strip()
|
db_secrets = f.readline().strip()
|
||||||
|
|
||||||
engine = create_engine(
|
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
|
del db_secrets
|
||||||
|
|
||||||
@ -41,37 +44,33 @@ class Team(SQLModel, table=True):
|
|||||||
|
|
||||||
class Player(SQLModel, table=True):
|
class Player(SQLModel, table=True):
|
||||||
id: int | None = Field(default=None, primary_key=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
|
number: str | None = None
|
||||||
teams: list[Team] | None = Relationship(
|
teams: list[Team] | None = Relationship(
|
||||||
back_populates="players", link_model=PlayerTeamLink
|
back_populates="players", link_model=PlayerTeamLink
|
||||||
)
|
)
|
||||||
|
scopes: str = ""
|
||||||
|
|
||||||
|
|
||||||
class Chemistry(SQLModel, table=True):
|
class Chemistry(SQLModel, table=True):
|
||||||
id: int | None = Field(default=None, primary_key=True)
|
id: int | None = Field(default=None, primary_key=True)
|
||||||
time: datetime | None = Field(default_factory=utctime)
|
time: datetime | None = Field(default_factory=utctime)
|
||||||
user: str
|
user: int | None = Field(default=None, foreign_key="player.id")
|
||||||
love: list[str] = Field(sa_column=Column(ARRAY(String)))
|
hate: list[int] = Field(sa_column=Column(ARRAY(Integer)))
|
||||||
hate: list[str] = Field(sa_column=Column(ARRAY(String)))
|
undecided: list[int] = Field(sa_column=Column(ARRAY(Integer)))
|
||||||
undecided: list[str] = Field(sa_column=Column(ARRAY(String)))
|
love: list[int] = Field(sa_column=Column(ARRAY(Integer)))
|
||||||
|
|
||||||
|
|
||||||
class MVPRanking(SQLModel, table=True):
|
class MVPRanking(SQLModel, table=True):
|
||||||
id: int | None = Field(default=None, primary_key=True)
|
id: int | None = Field(default=None, primary_key=True)
|
||||||
time: datetime | None = Field(default_factory=utctime)
|
time: datetime | None = Field(default_factory=utctime)
|
||||||
user: str
|
user: int | None = Field(default=None, foreign_key="player.id")
|
||||||
mvps: list[str] = Field(sa_column=Column(ARRAY(String)))
|
mvps: list[int] = Field(sa_column=Column(ARRAY(Integer)))
|
||||||
|
|
||||||
|
|
||||||
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 = ""
|
|
||||||
|
|
||||||
|
|
||||||
SQLModel.metadata.create_all(engine)
|
SQLModel.metadata.create_all(engine)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user