2021-12-05 03:58:14 +08:00
|
|
|
from datetime import datetime
|
2022-01-10 00:00:14 +08:00
|
|
|
from typing import List, Optional
|
2021-12-05 03:58:14 +08:00
|
|
|
|
2022-03-01 20:24:50 +08:00
|
|
|
from felicity.apps.common.schemas import BaseAuditModel
|
2021-12-05 03:58:14 +08:00
|
|
|
from felicity.apps.setup.schemas import Department
|
2022-01-10 00:00:14 +08:00
|
|
|
from felicity.apps.user.schemas import Group, User
|
2023-03-19 23:21:32 +08:00
|
|
|
from felicity.core.uid_gen import FelicityIDType
|
2021-12-05 03:58:14 +08:00
|
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
# Notice Schemas
|
|
|
|
#
|
|
|
|
class NoticeBase(BaseAuditModel):
|
|
|
|
departments: Optional[List[Department]] = []
|
|
|
|
groups: Optional[List[Group]] = []
|
|
|
|
title: Optional[str] = ""
|
|
|
|
body: Optional[str] = ""
|
|
|
|
viewers: Optional[List[User]] = []
|
|
|
|
expiry: Optional[datetime] = None
|
|
|
|
|
|
|
|
|
|
|
|
class Notice(NoticeBase):
|
2023-03-19 23:21:32 +08:00
|
|
|
uid: Optional[FelicityIDType] = None
|
2021-12-05 03:58:14 +08:00
|
|
|
|
|
|
|
class Config:
|
|
|
|
orm_mode = True
|
|
|
|
|
|
|
|
|
|
|
|
class NoticeCreate(NoticeBase):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class NoticeUpdate(NoticeBase):
|
|
|
|
pass
|