chat_back/app/chat/shemas.py

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 = "Внутренняя ошибка сервера"