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
|