mirror of
https://github.com/openmax-server/server.git
synced 2026-05-23 03:51:43 +03:00
Швырнул архитектуру, чтобы позже объединить контроллеры веба и сокета в одно, а также разделить процессоры
This commit is contained in:
129
src/oneme/models.py
Normal file
129
src/oneme/models.py
Normal file
@@ -0,0 +1,129 @@
|
||||
import pydantic
|
||||
|
||||
class UserAgentModel(pydantic.BaseModel):
|
||||
deviceType: str
|
||||
appVersion: str
|
||||
osVersion: str
|
||||
timezone: str
|
||||
release: int = None
|
||||
screen: str
|
||||
pushDeviceType: str
|
||||
arch: str = None
|
||||
locale: str
|
||||
buildNumber: int
|
||||
deviceName: str
|
||||
deviceLocale: str
|
||||
|
||||
class HelloPayloadModel(pydantic.BaseModel):
|
||||
clientSessionId: int
|
||||
mt_instanceid: str = None
|
||||
userAgent: UserAgentModel
|
||||
deviceId: str
|
||||
|
||||
class RequestCodePayloadModel(pydantic.BaseModel):
|
||||
phone: str
|
||||
type: str
|
||||
|
||||
@pydantic.field_validator('phone')
|
||||
def validate_phone(cls, v):
|
||||
"""Валидация номера телефона"""
|
||||
if not v.replace("+", "").replace(" ", "").replace("-", "").isdigit():
|
||||
raise ValueError('phone must be digits')
|
||||
return v
|
||||
|
||||
@pydantic.field_validator('type')
|
||||
def validate_type(cls, v):
|
||||
"""Валидация типа запроса"""
|
||||
if not v in ("START_AUTH", "RESEND"):
|
||||
raise ValueError('type must be valid')
|
||||
return v
|
||||
|
||||
class VerifyCodePayloadModel(pydantic.BaseModel):
|
||||
verifyCode: str
|
||||
authTokenType: str
|
||||
token: str
|
||||
|
||||
class LoginPayloadModel(pydantic.BaseModel):
|
||||
interactive: bool
|
||||
token: str
|
||||
|
||||
class PingPayloadModel(pydantic.BaseModel):
|
||||
interactive: bool
|
||||
|
||||
class AssetsPayloadModel(pydantic.BaseModel):
|
||||
sync: int
|
||||
type: str
|
||||
|
||||
class GetCallHistoryPayloadModel(pydantic.BaseModel):
|
||||
forward: bool
|
||||
count: int
|
||||
|
||||
class MessageModel(pydantic.BaseModel):
|
||||
isLive: bool
|
||||
detectShare: bool
|
||||
elements: list
|
||||
attaches: list = None
|
||||
cid: int
|
||||
text: str = None
|
||||
|
||||
class SendMessagePayloadModel(pydantic.BaseModel):
|
||||
# TODO: пишем сервер макса в 2 ночи и не понимаем как это валидировать (блять)
|
||||
userId: int = None
|
||||
chatId: int = None
|
||||
message: MessageModel
|
||||
|
||||
class SyncFoldersPayloadModel(pydantic.BaseModel):
|
||||
folderSync: int
|
||||
|
||||
class SearchChatsPayloadModel(pydantic.BaseModel):
|
||||
chatIds: list
|
||||
|
||||
class SearchByPhonePayloadModel(pydantic.BaseModel):
|
||||
phone: str
|
||||
|
||||
class GetCallTokenPayloadModel(pydantic.BaseModel):
|
||||
userId: int
|
||||
value: str
|
||||
|
||||
class TypingPayloadModel(pydantic.BaseModel):
|
||||
chatId: int
|
||||
type: str = None
|
||||
|
||||
class SearchUsersPayloadModel(pydantic.BaseModel):
|
||||
contactIds: list
|
||||
|
||||
class ComplainReasonsGetPayloadModel(pydantic.BaseModel):
|
||||
complainSync: int
|
||||
|
||||
class UpdateProfilePayloadModel(pydantic.BaseModel):
|
||||
description: str = None
|
||||
firstName: str = None
|
||||
lastName: str = None
|
||||
|
||||
class AuthConfirmRegisterPayloadModel(pydantic.BaseModel):
|
||||
token: str
|
||||
firstName: str
|
||||
lastName: str = None
|
||||
tokenType: str
|
||||
|
||||
@pydantic.field_validator('firstName')
|
||||
def validate_first_name(cls, v):
|
||||
v = v.strip()
|
||||
if not v:
|
||||
raise ValueError('firstName must not be empty')
|
||||
if len(v) > 59:
|
||||
raise ValueError('firstName too long')
|
||||
return v
|
||||
|
||||
@pydantic.field_validator('lastName')
|
||||
def validate_last_name(cls, v):
|
||||
if v is None:
|
||||
return v
|
||||
v = v.strip()
|
||||
if len(v) > 59:
|
||||
raise ValueError('lastName too long')
|
||||
return v
|
||||
|
||||
class ChatHistoryPayloadModel(pydantic.BaseModel):
|
||||
chatId: int
|
||||
backward: int
|
||||
Reference in New Issue
Block a user