felicity-lims/backend/felicity_lims/felicity/apps/worksheet/schemas.py

96 lines
2 KiB
Python
Raw Normal View History

2021-04-07 07:00:04 +08:00
from typing import Optional, Dict, List
2021-01-06 19:52:14 +08:00
from pydantic import BaseModel
#
# WorkSheet Schemas
#
# Shared properties
class WorkSheetBase(BaseModel):
analyst_uid: Optional[int] = None
template_uid: Optional[int] = None
worksheet_id: Optional[int] = None
instrument_uid: Optional[int] = None
analyses_uid: Optional[int] = None
reserved: Optional[Dict] = {}
number_of_samples: Optional[int] = None
worksheet_type: Optional[int] = 0
rows: Optional[int] = None
cols: Optional[int] = None
row_wise: Optional[bool] = True
template: Optional[Dict] = {}
2021-01-06 19:52:14 +08:00
class WorkSheetBaseInDB(WorkSheetBase):
uid: Optional[str] = None
class Config:
orm_mode = True
2021-01-06 19:52:14 +08:00
# Properties to receive via API on creation
class WorkSheetCreate(WorkSheetBase):
pass
2021-01-06 19:52:14 +08:00
# Properties to receive via API on update
class WorkSheetUpdate(WorkSheetBase):
pass
2021-01-06 19:52:14 +08:00
# Properties to return via API
class WorkSheet(WorkSheetBaseInDB):
pass
2021-01-06 19:52:14 +08:00
# Properties stored in DB
class WorkSheetInDB(WorkSheetBaseInDB):
pass
2021-01-06 19:52:14 +08:00
#
# WSTemplate Schemas
#
# Shared properties
class WSTemplateBase(BaseModel):
name: Optional[str] = None
description: Optional[str] = None
2021-04-07 07:00:04 +08:00
instrument_uid: Optional[str] = None
sample_type_uid: Optional[str] = None
analyses: List[Optional[int]] = []
2021-01-06 19:52:14 +08:00
reserved: Optional[Dict] = {}
2021-04-07 07:00:04 +08:00
number_of_samples: Optional[str] = None
worksheet_type: Optional[str] = 'flat'
rows: Optional[str] = None
cols: Optional[str] = None
2021-01-06 19:52:14 +08:00
row_wise: Optional[bool] = True
2021-01-06 19:52:14 +08:00
class WSTemplateBaseInDB(WSTemplateBase):
uid: Optional[str] = None
class Config:
orm_mode = True
2021-01-06 19:52:14 +08:00
# Properties to receive via API on creation
class WSTemplateCreate(WSTemplateBase):
pass
2021-01-06 19:52:14 +08:00
# Properties to receive via API on update
class WSTemplateUpdate(WSTemplateBase):
pass
2021-01-06 19:52:14 +08:00
# Properties to return via API
class WSTemplate(WSTemplateBaseInDB):
pass
2021-01-06 19:52:14 +08:00
# Properties stored in DB
class WSTemplateInDB(WSTemplateBaseInDB):
pass