mirror of
https://gitlab.com/octospacc/WinDog.git
synced 2025-01-20 11:08:23 +01:00
38 lines
890 B
Python
Executable File
38 lines
890 B
Python
Executable File
# ==================================== #
|
|
# WinDog multi-purpose chatbot #
|
|
# Licensed under AGPLv3 by OctoSpacc #
|
|
# ==================================== #
|
|
|
|
from peewee import *
|
|
from LibWinDog.Types import *
|
|
|
|
Db = SqliteDatabase("./Data/Database.sqlite")
|
|
|
|
class BaseModel(Model):
|
|
class Meta:
|
|
database = Db
|
|
|
|
class EntitySettings(BaseModel):
|
|
language = CharField(null=True)
|
|
|
|
class Entity(BaseModel):
|
|
id = CharField(null=True)
|
|
id_hash = CharField()
|
|
settings = ForeignKeyField(EntitySettings, backref="entity", null=True)
|
|
|
|
class User(Entity):
|
|
pass
|
|
|
|
class Room(Entity):
|
|
pass
|
|
|
|
Db.create_tables([EntitySettings, User, Room], safe=True)
|
|
|
|
class UserSettingsData():
|
|
def __new__(cls, user_id:str) -> SafeNamespace|None:
|
|
try:
|
|
return SafeNamespace(**EntitySettings.select().join(User).where(User.id == user_id).dicts().get())
|
|
except EntitySettings.DoesNotExist:
|
|
return None
|
|
|