"""故障 → 3D 部件对照表,以及故障场景位置的记录。""" from typing import Any from fastapi import APIRouter from pydantic import BaseModel, Field from services import fault_map_service router = APIRouter() class FaultSceneInput(BaseModel): model: str = Field(min_length=1) alarm_type: str = Field(min_length=1) device_point: str = "" camera: list[float] = Field(min_length=3, max_length=3) target: list[float] = Field(min_length=3, max_length=3) @router.get("/api/fault-part-map") def list_fault_part_map() -> list[dict[str, Any]]: return fault_map_service.list_rows() @router.post("/api/fault-part-map/scene") def set_fault_scene(payload: FaultSceneInput) -> dict[str, Any]: changed = fault_map_service.set_scene_position( payload.model, payload.alarm_type, payload.device_point, payload.camera, payload.target, ) return {"ok": True, "updated": changed}