122 lines
2.2 KiB
Python
122 lines
2.2 KiB
Python
from datetime import datetime
|
|
from uuid import UUID
|
|
|
|
from pydantic import BaseModel, HttpUrl
|
|
|
|
|
|
class SMessage(BaseModel):
|
|
id: int | UUID # TODO: Заменить на UUID
|
|
message: str | None = None
|
|
image_url: str | None = None
|
|
chat_id: int
|
|
user_id: int
|
|
username: str
|
|
created_at: datetime
|
|
avatar_image: str
|
|
answer_id: int | None | UUID # TODO: Заменить на UUID
|
|
answer_message: str | None
|
|
answer_image_url: str | None
|
|
|
|
|
|
class SMessageRaw(BaseModel):
|
|
id: UUID
|
|
message: str | None = None
|
|
image_url: str | None = None
|
|
chat_id: int
|
|
user_id: int
|
|
created_at: datetime
|
|
answer_id: UUID | None = None
|
|
answer_message: str | None = None
|
|
answer_image_url: str | None = None
|
|
|
|
|
|
class SMessageRawList(BaseModel):
|
|
message_raw_list: list[SMessageRaw] | None
|
|
|
|
|
|
class SMessageList(BaseModel):
|
|
messages: list[SMessage] | None
|
|
|
|
|
|
class SLastMessages(BaseModel):
|
|
messages_loaded: int
|
|
messages_to_get: int
|
|
|
|
|
|
class SChat(BaseModel):
|
|
chat_id: int
|
|
chat_for: int
|
|
chat_name: str
|
|
created_by: int
|
|
avatar_image: str
|
|
|
|
|
|
class SChangeData(BaseModel):
|
|
chat_id: int
|
|
chat_name: str
|
|
avatar_image: HttpUrl
|
|
|
|
|
|
class SChatId(BaseModel):
|
|
chat_id: int
|
|
|
|
|
|
class SAllowedChats(BaseModel):
|
|
allowed_chats: list[SChat] | None
|
|
|
|
|
|
class SPinnedChats(BaseModel):
|
|
pinned_chats: list[SChat] | None
|
|
|
|
|
|
class SPinnedMessages(BaseModel):
|
|
pinned_messages: list[SMessage] | None
|
|
|
|
|
|
class SSendMessage(BaseModel):
|
|
flag: str
|
|
message: str
|
|
image_url: str | None
|
|
answer: UUID | None
|
|
|
|
|
|
class SDeleteMessage(BaseModel):
|
|
flag: str
|
|
user_id: int
|
|
id: int
|
|
|
|
|
|
class SEditMessage(BaseModel):
|
|
flag: str
|
|
user_id: int
|
|
id: int
|
|
new_message: str | None
|
|
new_image_url: str | None
|
|
|
|
|
|
class SPinMessage(BaseModel):
|
|
flag: str
|
|
id: int
|
|
user_id: int
|
|
|
|
|
|
class SUnpinMessage(BaseModel):
|
|
flag: str
|
|
id: int
|
|
|
|
|
|
class Responses:
|
|
class STokenMissingException(BaseModel):
|
|
detail: str = "Токен отсутствует"
|
|
|
|
class SNotAuthenticated(BaseModel):
|
|
detail: str = "Not authenticated"
|
|
|
|
class SUserNotFoundException(BaseModel):
|
|
detail: str = "Юзер не найден"
|
|
|
|
class SUserMustConfirmEmailException(BaseModel):
|
|
detail: str = "Сначала подтвердите почту"
|
|
|
|
class SBlackPhoenixException(BaseModel):
|
|
detail: str = "Внутренняя ошибка сервера"
|