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