mirror of
https://github.com/beak-insights/felicity-lims.git
synced 2025-02-24 08:53:00 +08:00
84 lines
1.8 KiB
Python
84 lines
1.8 KiB
Python
from typing import List, Optional
|
|
|
|
from pydantic import ConfigDict
|
|
|
|
from apps.common.schemas import BaseAuditModel
|
|
from apps.setup.schemas import Department
|
|
from apps.user.schemas import Group, User
|
|
|
|
|
|
#
|
|
# ActivityFeed Schemas
|
|
#
|
|
class ActivityFeedBase(BaseAuditModel):
|
|
name: str | None = ""
|
|
subscribers: Optional[List[User]] = []
|
|
|
|
|
|
class ActivityFeed(ActivityFeedBase):
|
|
uid: str | None = None
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
|
|
class ActivityFeedCreate(ActivityFeedBase):
|
|
pass
|
|
|
|
|
|
class ActivityFeedUpdate(ActivityFeedBase):
|
|
pass
|
|
|
|
|
|
#
|
|
# ActivityStream Schemas
|
|
#
|
|
class ActivityStreamBase(BaseAuditModel):
|
|
feeds: Optional[List[ActivityFeed]] = []
|
|
actor_uid: str | None = None
|
|
actor: Optional[User] = None
|
|
verb: str | None = None
|
|
action_object_type: str | None = None
|
|
action_object_uid: str | None = None
|
|
action_object: str | None = None
|
|
target_uid: str | None = None
|
|
target: str | None = None
|
|
viewers: Optional[List[User]] = []
|
|
|
|
|
|
class ActivityStream(ActivityStreamBase):
|
|
uid: str | None = None
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
|
|
class ActivityStreamCreate(ActivityStream):
|
|
pass
|
|
|
|
|
|
class ActivityStreamUpdate(ActivityStreamBase):
|
|
pass
|
|
|
|
|
|
#
|
|
# Notification Schemas
|
|
#
|
|
class NotificationBase(BaseAuditModel):
|
|
departments: Optional[List[Department]] = []
|
|
groups: Optional[List[Group]] = []
|
|
users: Optional[List[User]] = []
|
|
message: str | None = ""
|
|
viewers: Optional[List[User]] = []
|
|
|
|
|
|
class Notification(NotificationBase):
|
|
uid: str | None = None
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
|
|
class NotificationCreate(NotificationBase):
|
|
pass
|
|
|
|
|
|
class NotificationUpdate(NotificationBase):
|
|
pass
|