mirror of
https://github.com/openmax-server/server.git
synced 2026-05-23 03:51:43 +03:00
96 lines
2.4 KiB
Python
96 lines
2.4 KiB
Python
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 |