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

36 lines
713 B
Python
Raw Normal View History

2023-03-19 23:21:32 +08:00
from typing import Any, Optional
2022-11-06 20:09:44 +08:00
2023-04-10 20:23:31 +08:00
from core.uid_gen import FelicityIDType
2021-01-06 19:52:14 +08:00
from pydantic import BaseModel
from .conf import categories, priorities, states
2021-01-06 19:52:14 +08:00
#
2021-01-06 19:52:14 +08:00
# Job Schemas
#
class JobBase(BaseModel):
2021-01-06 19:52:14 +08:00
action: Optional[str] = None
category: Optional[str] = categories.WORKSHEET
priority: Optional[int] = priorities.NORMAL
2023-02-26 22:14:43 +08:00
data: Optional[Any] = None
2023-04-08 17:16:11 +08:00
job_id: Optional[FelicityIDType] = None
2021-01-06 19:52:14 +08:00
status: Optional[str] = states.PENDING
reason: Optional[str] = None
2023-03-19 23:21:32 +08:00
creator_uid: Optional[FelicityIDType] = None
2021-01-06 19:52:14 +08:00
class Job(JobBase):
2023-03-19 23:21:32 +08:00
uid: Optional[FelicityIDType] = None
2021-01-06 19:52:14 +08:00
class Config:
orm_mode = True
2021-01-06 19:52:14 +08:00
class JobCreate(JobBase):
pass
2021-01-06 19:52:14 +08:00
class JobUpdate(JobBase):
pass