felicity-lims/felicity/apps/noticeboard/schemas.py

35 lines
715 B
Python
Raw Normal View History

from datetime import datetime
from typing import List, Optional
2023-04-10 20:23:31 +08:00
from apps.common.schemas import BaseAuditModel
from apps.setup.schemas import Department
from apps.user.schemas import Group, User
from core.uid_gen import FelicityIDType
#
# 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
class Config:
orm_mode = True
class NoticeCreate(NoticeBase):
pass
class NoticeUpdate(NoticeBase):
pass