You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
from datetime import datetime
|
|
from typing import ForwardRef, List, Optional
|
|
from uuid import UUID
|
|
|
|
from pydantic import Field
|
|
from src.models import CommonParams, DefaultBase, Pagination
|
|
|
|
|
|
class EquipmentMasterBase(DefaultBase):
|
|
parent_id: Optional[UUID] = Field(None)
|
|
name: Optional[str] = Field(None)
|
|
created_at: Optional[datetime] = Field(None)
|
|
updated_at: Optional[datetime] = Field(None)
|
|
|
|
|
|
class EquipmentMasterCreate(EquipmentMasterBase):
|
|
pass
|
|
|
|
|
|
class EquipmentTree(DefaultBase):
|
|
level_no: Optional[int] = Field(None)
|
|
name: Optional[str] = Field(None)
|
|
|
|
|
|
class EquipmentMasterUpdate(EquipmentMasterBase):
|
|
pass
|
|
|
|
|
|
EquipmentMasterReadRef = ForwardRef("EquipmentMasterRead")
|
|
|
|
|
|
class EquipmentMasterRead(EquipmentMasterBase):
|
|
id: UUID
|
|
equipment_tree_id: Optional[UUID] = Field(None)
|
|
equipment_tree: EquipmentTree
|
|
category_id: Optional[UUID] = Field(None)
|
|
system_tag: Optional[str] = Field(None)
|
|
assetnum: Optional[str] = Field(None)
|
|
location_tag: Optional[str] = Field(None)
|
|
children: List[EquipmentMasterReadRef] # type: ignore
|
|
|
|
|
|
class EquipmentMasterPaginated(Pagination):
|
|
items: List[EquipmentMasterRead] = []
|
|
|
|
|
|
class EquipmentMasterQuery(CommonParams):
|
|
parent_id : Optional[str] = None
|
|
items_per_page : Optional[int] = 5
|
|
search : Optional[str] = None |