mirror of
https://gitlab.com/octospacc/WinDog.git
synced 2025-06-05 22:09:20 +02:00
Rename some internal functions; Update db and start work on message filters
This commit is contained in:
@ -14,19 +14,64 @@ class BaseModel(Model):
|
||||
|
||||
class EntitySettings(BaseModel):
|
||||
language = CharField(null=True)
|
||||
#country = ...
|
||||
#timezone = ...
|
||||
|
||||
class Entity(BaseModel):
|
||||
id = CharField(null=True)
|
||||
id_hash = CharField()
|
||||
settings = ForeignKeyField(EntitySettings, backref="entity", null=True)
|
||||
|
||||
class User(Entity):
|
||||
pass
|
||||
class File(BaseModel):
|
||||
path = CharField()
|
||||
content = BlobField()
|
||||
owner = ForeignKeyField(Entity, backref="files")
|
||||
class Meta:
|
||||
indexes = (
|
||||
(('path', 'owner'), True),
|
||||
)
|
||||
|
||||
#class BaseFilter(BaseModel):
|
||||
# name = CharField(null=True)
|
||||
# owner = ForeignKeyField(Entity, backref="filters")
|
||||
|
||||
#class ScriptFilter(BaseFilter):
|
||||
# script = TextField()
|
||||
|
||||
#class StaticFilter(BaseFilter):
|
||||
# response = TextField()
|
||||
|
||||
class Filter(BaseModel):
|
||||
name = CharField(null=True)
|
||||
trigger = CharField(null=True)
|
||||
output = CharField(null=True)
|
||||
owner = ForeignKeyField(Entity, backref="filters")
|
||||
|
||||
class Room(Entity):
|
||||
pass
|
||||
|
||||
Db.create_tables([EntitySettings, User, Room], safe=True)
|
||||
UserToRoomDeferred = DeferredThroughModel()
|
||||
FilterToRoomDeferred = DeferredThroughModel()
|
||||
|
||||
class User(Entity):
|
||||
rooms = ManyToManyField(Room, backref="users", through_model=UserToRoomDeferred)
|
||||
|
||||
class UserToRoom(BaseModel):
|
||||
user = ForeignKeyField(User, backref="room_links")
|
||||
room = ForeignKeyField(Room, backref="user_links")
|
||||
|
||||
class FilterToRoom(BaseModel):
|
||||
filter = ForeignKeyField(Filter, backref="room_links")
|
||||
room = ForeignKeyField(Room, backref="filter_links")
|
||||
|
||||
UserToRoomDeferred.set_model(UserToRoom)
|
||||
FilterToRoomDeferred.set_model(FilterToRoom)
|
||||
|
||||
Db.create_tables([
|
||||
EntitySettings, File, Filter,
|
||||
User, Room,
|
||||
FilterToRoom, UserToRoom,
|
||||
], safe=True)
|
||||
|
||||
class UserSettingsData():
|
||||
def __new__(cls, user_id:str=None) -> SafeNamespace:
|
||||
|
Reference in New Issue
Block a user