first commit
This commit is contained in:
commit
bc94c75b54
31 files changed
+3483
No files matched your search
@@ -0,0 +1,55 @@
|
||||
from passlib.context import CryptContext
|
||||
from sqlalchemy import Column, Integer, String, Date, Boolean, Float, DateTime
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
|
||||
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
|
||||
Base = declarative_base()
|
||||
|
||||
class Violation(Base):
|
||||
__tablename__ = "violations"
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
date = Column(Date, nullable=False)
|
||||
type = Column(String, nullable=False)
|
||||
clause = Column(String)
|
||||
sanction_level = Column(Integer) # 1/2/3
|
||||
executed = Column(Boolean, default=False)
|
||||
confirmed = Column(Boolean, default=False)
|
||||
remark = Column(String) # 含屏幕时间
|
||||
star_mark = Column(Boolean, default=False)
|
||||
|
||||
class Debt(Base):
|
||||
__tablename__ = "debts"
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
date = Column(Date)
|
||||
task_name = Column(String)
|
||||
owed_amount = Column(Float)
|
||||
interest_rate = Column(Float, default=1.5)
|
||||
due_amount = Column(Float)
|
||||
completed = Column(Boolean, default=False)
|
||||
completion_date = Column(Date)
|
||||
|
||||
class Reward(Base):
|
||||
__tablename__ = "rewards"
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
type = Column(String) # 全勤/时长之星等
|
||||
achieve_date = Column(Date)
|
||||
content = Column(String)
|
||||
exchange_date = Column(Date)
|
||||
confirmed = Column(Boolean, default=False)
|
||||
|
||||
class Parameter(Base):
|
||||
__tablename__ = "parameters"
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
name = Column(String, unique=True)
|
||||
value = Column(String)
|
||||
effective_date = Column(Date)
|
||||
|
||||
class User(Base):
|
||||
__tablename__ = "users"
|
||||
id = Column(Integer, primary_key=True)
|
||||
username = Column(String, unique=True, nullable=False)
|
||||
hashed_password = Column(String, nullable=False)
|
||||
role = Column(String, default="child") # parent / child
|
||||
|
||||
def verify_password(self, password: str) -> bool:
|
||||
return pwd_context.verify(password, self.hashed_password)
|
||||
Reference in new issue
Block a user