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

44 lines
1.1 KiB
Python
Raw Normal View History

2023-02-24 08:44:14 +08:00
from datetime import datetime
2023-03-19 23:21:32 +08:00
from typing import Dict, Optional
2023-04-10 20:23:31 +08:00
from apps.analysis.schemas import SampleInDB
from core.uid_gen import FelicityIDType
2023-02-24 08:44:14 +08:00
from pydantic import BaseModel
#
# ReportImpress Schemas
#
2023-03-19 23:21:32 +08:00
2023-02-24 08:44:14 +08:00
class ReportImpressBase(BaseModel):
state: Optional[str] = None
2023-03-19 23:21:32 +08:00
sample_uid: Optional[FelicityIDType] = None
2023-02-24 08:44:14 +08:00
sample: Optional[SampleInDB] = None
json_content: Optional[Dict] = {}
pdf_content: Optional[bytes] = None
email_required: Optional[bool] = False
email_sent: Optional[bool] = False
sms_required: Optional[bool] = False
sms_sent: Optional[bool] = False
2023-03-19 23:21:32 +08:00
generated_by_uid: Optional[FelicityIDType] = None
created_by_uid: Optional[FelicityIDType] = None
updated_by_uid: Optional[FelicityIDType] = None
2023-02-24 08:44:14 +08:00
date_generated: Optional[datetime] = False
class ReportImpressBaseInDB(ReportImpressBase):
2023-03-19 23:21:32 +08:00
uid: Optional[FelicityIDType] = None
2023-02-24 08:44:14 +08:00
class Config:
orm_mode = True
# Properties to receive via API on creation
class ReportImpressCreate(ReportImpressBase):
pass
# Properties to receive via API on update
class ReportImpressUpdate(ReportImpressBase):
pass