temporary move
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
import functools
|
||||
|
||||
from snek.model.channel import ChannelModel
|
||||
from snek.model.channel_member import ChannelMemberModel
|
||||
|
||||
# from snek.model.channel_message import ChannelMessageModel
|
||||
from snek.model.channel_message import ChannelMessageModel
|
||||
from snek.model.user import UserModel
|
||||
from snek.system.object import Object
|
||||
|
||||
|
||||
@functools.cache
|
||||
def get_models():
|
||||
return Object(
|
||||
**{
|
||||
"user": UserModel,
|
||||
"channel_member": ChannelMemberModel,
|
||||
"channel": ChannelModel,
|
||||
"channel_message": ChannelMessageModel,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def get_model(name):
|
||||
return get_models()[name]
|
||||
@@ -0,0 +1,11 @@
|
||||
from snek.system.model import BaseModel, ModelField
|
||||
|
||||
|
||||
class ChannelModel(BaseModel):
|
||||
label = ModelField(name="label", required=True, kind=str)
|
||||
description = ModelField(name="description", required=False, kind=str)
|
||||
tag = ModelField(name="tag", required=False, kind=str)
|
||||
created_by_uid = ModelField(name="created_by_uid", required=True, kind=str)
|
||||
is_private = ModelField(name="is_private", required=True, kind=bool, value=False)
|
||||
is_listed = ModelField(name="is_listed", required=True, kind=bool, value=True)
|
||||
index = ModelField(name="index", required=True, kind=int, value=1000)
|
||||
@@ -0,0 +1,15 @@
|
||||
from snek.system.model import BaseModel, ModelField
|
||||
|
||||
|
||||
class ChannelMemberModel(BaseModel):
|
||||
label = ModelField(name="label", required=True, kind=str)
|
||||
channel_uid = ModelField(name="channel_uid", required=True, kind=str)
|
||||
user_uid = ModelField(name="user_uid", required=True, kind=str)
|
||||
is_moderator = ModelField(
|
||||
name="is_moderator", required=True, kind=bool, value=False
|
||||
)
|
||||
is_read_only = ModelField(
|
||||
name="is_read_only", required=True, kind=bool, value=False
|
||||
)
|
||||
is_muted = ModelField(name="is_muted", required=True, kind=bool, value=False)
|
||||
is_banned = ModelField(name="is_banned", required=True, kind=bool, value=False)
|
||||
@@ -0,0 +1,8 @@
|
||||
from snek.system.model import BaseModel, ModelField
|
||||
|
||||
|
||||
class ChannelMessageModel(BaseModel):
|
||||
channel_uid = ModelField(name="channel_uid", required=True, kind=str)
|
||||
user_uid = ModelField(name="user_uid", required=True, kind=str)
|
||||
message = ModelField(name="message", required=True, kind=str)
|
||||
html = ModelField(name="html", required=False, kind=str)
|
||||
@@ -0,0 +1,9 @@
|
||||
from snek.system.model import BaseModel, ModelField
|
||||
|
||||
|
||||
class NotificationModel(BaseModel):
|
||||
object_uid = ModelField(name="object_uid", required=True)
|
||||
object_type = ModelField(name="object_type", required=True)
|
||||
message = ModelField(name="message", required=True)
|
||||
user_uid = ModelField(name="user_uid", required=True)
|
||||
read_at = ModelField(name="is_read", required=True)
|
||||
@@ -0,0 +1,31 @@
|
||||
from snek.system.model import BaseModel, ModelField
|
||||
|
||||
|
||||
class UserModel(BaseModel):
|
||||
|
||||
username = ModelField(
|
||||
name="username",
|
||||
required=True,
|
||||
min_length=2,
|
||||
max_length=20,
|
||||
regex=r"^[a-zA-Z0-9_]+$",
|
||||
)
|
||||
nick = ModelField(
|
||||
name="nick",
|
||||
required=True,
|
||||
min_length=2,
|
||||
max_length=20,
|
||||
regex=r"^[a-zA-Z0-9_]+$",
|
||||
)
|
||||
color = ModelField(
|
||||
name ="color",
|
||||
required=True,
|
||||
regex=r"^#[0-9a-fA-F]{6}$",
|
||||
kind=str
|
||||
)
|
||||
email = ModelField(
|
||||
name="email",
|
||||
required=False,
|
||||
regex=r"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$",
|
||||
)
|
||||
password = ModelField(name="password", required=True, regex=r"^[a-zA-Z0-9_.+-]{6,}")
|
||||
Reference in New Issue
Block a user