Merge remote-tracking branch 'origin/chats'
This commit is contained in:
		@@ -8,6 +8,7 @@ from schemas.base import BaseSchema, OkMessageSchema
 | 
			
		||||
from schemas.billing import CardBillRequestSchema
 | 
			
		||||
from schemas.board import BoardSchema
 | 
			
		||||
from schemas.card_tag import CardTagSchema
 | 
			
		||||
from schemas.chat import ChatSchema
 | 
			
		||||
from schemas.client import ClientSchema
 | 
			
		||||
from schemas.group import CardGroupSchema
 | 
			
		||||
from schemas.marketplace import BaseMarketplaceSchema
 | 
			
		||||
@@ -108,6 +109,7 @@ class BaseCardSchema(BaseSchema):
 | 
			
		||||
 | 
			
		||||
class CardSchema(BaseCardSchema):
 | 
			
		||||
    attributes: list[CardAttributeSchema]
 | 
			
		||||
    chat: Optional[ChatSchema]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CardGeneralInfoSchema(BaseSchemaWithAttributes):
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										125
									
								
								schemas/chat.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								schemas/chat.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,125 @@
 | 
			
		||||
from datetime import datetime
 | 
			
		||||
from typing import Optional
 | 
			
		||||
 | 
			
		||||
from schemas.base import BaseSchema, OkMessageSchema
 | 
			
		||||
from schemas.user import UserSchema
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# region Entities
 | 
			
		||||
 | 
			
		||||
class TgUserSchema(BaseSchema):
 | 
			
		||||
    id: int
 | 
			
		||||
    first_name: str
 | 
			
		||||
    last_name: str
 | 
			
		||||
    username: str
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class MessageFileSchema(BaseSchema):
 | 
			
		||||
    id: int
 | 
			
		||||
    file_path: str
 | 
			
		||||
    type: str
 | 
			
		||||
    file_name: str
 | 
			
		||||
    file_size: int
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class BaseMessageSchema(BaseSchema):
 | 
			
		||||
    text: str
 | 
			
		||||
    chat_id: int
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class EditMessageSchema(BaseMessageSchema):
 | 
			
		||||
    id: int
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class MessageSchema(EditMessageSchema):
 | 
			
		||||
    created_at: datetime
 | 
			
		||||
    tg_sender: Optional[TgUserSchema]
 | 
			
		||||
    crm_sender: Optional[UserSchema]
 | 
			
		||||
    status: str
 | 
			
		||||
    is_edited: bool
 | 
			
		||||
    file: Optional[MessageFileSchema] = None
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class RepeatSendingMessageSchema(BaseMessageSchema):
 | 
			
		||||
    text: str
 | 
			
		||||
    id: int
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TgGroupSchema(BaseSchema):
 | 
			
		||||
    tg_group_id: int
 | 
			
		||||
    tg_invite_link: str
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ChatSchema(BaseSchema):
 | 
			
		||||
    id: int
 | 
			
		||||
    client_id: Optional[int]
 | 
			
		||||
    card_id: Optional[int]
 | 
			
		||||
    tg_group: Optional[TgGroupSchema]
 | 
			
		||||
 | 
			
		||||
# endregion
 | 
			
		||||
 | 
			
		||||
# region Requests
 | 
			
		||||
 | 
			
		||||
class SendTextMessageRequest(BaseSchema):
 | 
			
		||||
    message: BaseMessageSchema
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class RepeatSendingTextMessageRequest(BaseSchema):
 | 
			
		||||
    message: RepeatSendingMessageSchema
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class EditMessageRequest(BaseSchema):
 | 
			
		||||
    message: EditMessageSchema
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class GetChatRequest(BaseSchema):
 | 
			
		||||
    client_id: int
 | 
			
		||||
    card_id: Optional[int]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CreateChatRequest(BaseSchema):
 | 
			
		||||
    client_id: int
 | 
			
		||||
    card_id: Optional[int]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class GetMessagesRequest(BaseSchema):
 | 
			
		||||
    chat_id: int
 | 
			
		||||
    offset: int
 | 
			
		||||
    limit: int
 | 
			
		||||
 | 
			
		||||
# endregion
 | 
			
		||||
 | 
			
		||||
# region Responses
 | 
			
		||||
 | 
			
		||||
class SendTextMessageResponse(OkMessageSchema):
 | 
			
		||||
    pass
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class RepeatSendingTextMessageResponse(OkMessageSchema):
 | 
			
		||||
    pass
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class LoadMessagesResponse(OkMessageSchema):
 | 
			
		||||
    pass
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class DeleteMessageResponse(OkMessageSchema):
 | 
			
		||||
    pass
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class EditMessageResponse(OkMessageSchema):
 | 
			
		||||
    pass
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class GetChatResponse(BaseSchema):
 | 
			
		||||
    chat: Optional[ChatSchema]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CreateChatResponse(OkMessageSchema):
 | 
			
		||||
    pass
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class GetMessagesResponse(BaseSchema):
 | 
			
		||||
    messages: list[MessageSchema]
 | 
			
		||||
 | 
			
		||||
# endregion
 | 
			
		||||
@@ -4,6 +4,7 @@ from pydantic import field_validator
 | 
			
		||||
 | 
			
		||||
from schemas.barcode import BarcodeTemplateSchema
 | 
			
		||||
from schemas.base import BaseSchema, OkMessageSchema
 | 
			
		||||
from schemas.chat import ChatSchema
 | 
			
		||||
from schemas.residues import ResidualBoxSchema, ResidualPalletSchema
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -26,6 +27,7 @@ class ClientSchema(BaseSchema):
 | 
			
		||||
    barcode_template: BarcodeTemplateSchema | None = None
 | 
			
		||||
    comment: Optional[str] = None
 | 
			
		||||
    details: ClientDetailsSchema | None = None
 | 
			
		||||
    chat: ChatSchema | None = None
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ClientDetailedSchema(ClientSchema):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user