mirror of
https://github.com/beak-insights/felicity-lims.git
synced 2025-02-24 00:42:59 +08:00
57 lines
1.1 KiB
Python
57 lines
1.1 KiB
Python
from typing import List, Optional
|
|
|
|
from apps.common.schemas import BaseAuditModel
|
|
from apps.user.schemas import User
|
|
from core.uid_gen import FelicityIDType
|
|
|
|
|
|
#
|
|
# Message Schemas
|
|
#
|
|
class MessageBase(BaseAuditModel):
|
|
thread_uid: FelicityIDType
|
|
thread: Optional["MessageThread"] = None
|
|
body: Optional[str] = ""
|
|
viewers: Optional[List[User]] = []
|
|
deleted_by: Optional[List[User]] = []
|
|
parent_id: Optional[FelicityIDType] = None
|
|
|
|
|
|
class Message(MessageBase):
|
|
uid: Optional[FelicityIDType] = None
|
|
|
|
class Config:
|
|
orm_mode = True
|
|
|
|
|
|
class MessageCreate(MessageBase):
|
|
pass
|
|
|
|
|
|
class MessageUpdate(MessageBase):
|
|
pass
|
|
|
|
|
|
#
|
|
# MessageThread Schemas
|
|
#
|
|
class MessageThreadBase(BaseAuditModel):
|
|
broadcast: Optional[bool] = False
|
|
recipients: Optional[List[User]] = []
|
|
messages: Optional[List[Message]] = []
|
|
recipients: Optional[List[User]] = []
|
|
|
|
|
|
class MessageThread(MessageThreadBase):
|
|
uid: Optional[FelicityIDType] = None
|
|
|
|
class Config:
|
|
orm_mode = True
|
|
|
|
|
|
class MessageThreadCreate(MessageThreadBase):
|
|
pass
|
|
|
|
|
|
class MessageThreadUpdate(MessageThreadBase):
|
|
pass
|