1
0
mirror of https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git synced 2025-08-14 00:25:46 +02:00

Создание чата9

This commit is contained in:
MoonTestUse1
2025-01-05 06:07:53 +06:00
parent 0cb78fc749
commit a606ec4a68
3 changed files with 35 additions and 29 deletions

View File

@@ -1,34 +1,43 @@
from pydantic import BaseModel
"""Chat schemas"""
from pydantic import BaseModel, ConfigDict
from datetime import datetime
from typing import List, Optional
from typing import Optional, List
from app.models.user import User
class ChatBase(BaseModel):
model_config = ConfigDict(arbitrary_types_allowed=True)
employee_id: int
class ChatCreate(ChatBase):
pass
class MessageBase(BaseModel):
model_config = ConfigDict(arbitrary_types_allowed=True)
content: str
chat_id: int
sender_id: int
class MessageCreate(MessageBase):
pass
class ChatFileBase(BaseModel):
file_name: str
file_size: int
model_config = ConfigDict(arbitrary_types_allowed=True)
filename: str
file_path: str
message_id: int
class ChatFileCreate(ChatFileBase):
pass
class ChatFile(ChatFileBase):
id: int
message_id: int
file_path: str
created_at: datetime
class Config:
from_attributes = True
class MessageBase(BaseModel):
content: str
class MessageCreate(MessageBase):
pass
class Message(MessageBase):
id: int
chat_id: int
sender_id: int
is_read: bool
created_at: datetime
files: List[ChatFile] = []
@@ -36,20 +45,12 @@ class Message(MessageBase):
class Config:
from_attributes = True
class ChatBase(BaseModel):
employee_id: int
admin_id: int
class ChatCreate(ChatBase):
pass
class Chat(ChatBase):
id: int
created_at: datetime
employee: User
admin: User
last_message: Optional[Message] = None
unread_count: Optional[int] = 0
messages: List[Message] = []
created_at: datetime
updated_at: Optional[datetime] = None
class Config:
from_attributes = True

View File

@@ -1,9 +1,10 @@
"""Request schemas"""
from pydantic import BaseModel
from pydantic import BaseModel, ConfigDict
from datetime import datetime
from typing import Optional
class RequestBase(BaseModel):
model_config = ConfigDict(arbitrary_types_allowed=True)
request_type: str
description: str
priority: str
@@ -12,6 +13,7 @@ class RequestCreate(RequestBase):
pass
class RequestUpdate(BaseModel):
model_config = ConfigDict(arbitrary_types_allowed=True)
status: str
class Request(RequestBase):

View File

@@ -1,16 +1,19 @@
from pydantic import BaseModel, EmailStr
"""User schemas"""
from pydantic import BaseModel, EmailStr, ConfigDict
from typing import Optional
class UserBase(BaseModel):
model_config = ConfigDict(arbitrary_types_allowed=True)
email: EmailStr
full_name: str
is_admin: bool = False
class UserCreate(UserBase):
password: str
class User(UserBase):
id: int
is_active: bool
is_admin: bool
is_active: bool = True
class Config:
from_attributes = True