2026-05-27 16:38:40 +08:00
|
|
|
from pydantic import BaseModel
|
2026-05-28 16:29:02 +08:00
|
|
|
from typing import Optional, List
|
2026-05-27 16:38:40 +08:00
|
|
|
from datetime import datetime
|
|
|
|
|
|
|
|
|
|
|
2026-05-28 16:29:02 +08:00
|
|
|
class EqpChecklistItemCreate(BaseModel):
|
|
|
|
|
item_name: str
|
|
|
|
|
item_standard: Optional[str] = None
|
2026-05-27 16:38:40 +08:00
|
|
|
sort_order: int = 0
|
|
|
|
|
|
|
|
|
|
|
2026-05-28 16:29:02 +08:00
|
|
|
class EqpChecklistItemOut(EqpChecklistItemCreate):
|
2026-05-27 16:38:40 +08:00
|
|
|
id: int
|
2026-05-28 16:29:02 +08:00
|
|
|
checklist_id: int
|
2026-05-27 16:38:40 +08:00
|
|
|
created_at: datetime
|
|
|
|
|
class Config:
|
|
|
|
|
from_attributes = True
|
|
|
|
|
|
|
|
|
|
|
2026-05-28 16:29:02 +08:00
|
|
|
class EqpChecklistCreate(BaseModel):
|
|
|
|
|
name: str
|
|
|
|
|
description: Optional[str] = None
|
2026-05-27 16:38:40 +08:00
|
|
|
equipment_code: Optional[str] = None
|
|
|
|
|
equipment_name: Optional[str] = None
|
2026-05-28 16:29:02 +08:00
|
|
|
period: str = "daily"
|
|
|
|
|
items: Optional[List[EqpChecklistItemCreate]] = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EqpChecklistUpdate(BaseModel):
|
|
|
|
|
name: Optional[str] = None
|
|
|
|
|
description: Optional[str] = None
|
|
|
|
|
equipment_code: Optional[str] = None
|
|
|
|
|
equipment_name: Optional[str] = None
|
|
|
|
|
period: Optional[str] = None
|
|
|
|
|
is_active: Optional[bool] = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EqpChecklistOut(BaseModel):
|
|
|
|
|
id: int
|
|
|
|
|
name: str
|
|
|
|
|
description: Optional[str]
|
|
|
|
|
equipment_code: Optional[str]
|
|
|
|
|
equipment_name: Optional[str]
|
|
|
|
|
period: str
|
|
|
|
|
is_active: bool
|
|
|
|
|
created_at: datetime
|
|
|
|
|
class Config:
|
|
|
|
|
from_attributes = True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EqpInspectionDetailCreate(BaseModel):
|
|
|
|
|
checklist_item_id: Optional[int] = None
|
|
|
|
|
item_name: str
|
|
|
|
|
actual_value: Optional[str] = None
|
|
|
|
|
is_ok: bool = True
|
2026-05-27 16:38:40 +08:00
|
|
|
notes: Optional[str] = None
|
|
|
|
|
|
|
|
|
|
|
2026-05-28 16:29:02 +08:00
|
|
|
class EqpInspectionDetailOut(EqpInspectionDetailCreate):
|
2026-05-27 16:38:40 +08:00
|
|
|
id: int
|
2026-05-28 16:29:02 +08:00
|
|
|
record_id: int
|
2026-05-27 16:38:40 +08:00
|
|
|
created_at: datetime
|
2026-05-28 16:29:02 +08:00
|
|
|
class Config:
|
|
|
|
|
from_attributes = True
|
2026-05-27 16:38:40 +08:00
|
|
|
|
2026-05-28 16:29:02 +08:00
|
|
|
|
|
|
|
|
class EqpInspectionRecordCreate(BaseModel):
|
|
|
|
|
checklist_id: int
|
|
|
|
|
inspector: str
|
|
|
|
|
inspect_time: datetime
|
|
|
|
|
status: str = "ok"
|
|
|
|
|
overall_result: Optional[str] = None
|
|
|
|
|
remark: Optional[str] = None
|
|
|
|
|
details: Optional[List[EqpInspectionDetailCreate]] = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EqpInspectionRecordOut(BaseModel):
|
|
|
|
|
id: int
|
|
|
|
|
checklist_id: int
|
|
|
|
|
checklist_name: Optional[str]
|
|
|
|
|
inspector: str
|
|
|
|
|
inspect_time: datetime
|
|
|
|
|
status: str
|
|
|
|
|
overall_result: Optional[str]
|
|
|
|
|
remark: Optional[str]
|
|
|
|
|
created_at: datetime
|
2026-05-27 16:38:40 +08:00
|
|
|
class Config:
|
|
|
|
|
from_attributes = True
|