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

35 lines
756 B
Python
Raw Normal View History

from datetime import datetime
from typing import List, Optional
2023-09-11 13:06:17 +08:00
from pydantic import ConfigDict
from felicity.apps.common.schemas import BaseAuditModel
from felicity.apps.setup.schemas import Department
from felicity.apps.user.schemas import Group, User
#
# Notice Schemas
#
class NoticeBase(BaseAuditModel):
departments: Optional[List[Department]] = []
groups: Optional[List[Group]] = []
title: str | None = ""
body: str | None = ""
viewers: Optional[List[User]] = []
expiry: datetime | None = None
class Notice(NoticeBase):
2023-09-11 13:02:05 +08:00
uid: str | None = None
2023-09-11 13:06:17 +08:00
model_config = ConfigDict(from_attributes=True)
class NoticeCreate(NoticeBase):
pass
class NoticeUpdate(NoticeBase):
pass