Files
Aislo/B07_wf4_DesignDetail/B07_wf4_DesignDetail_Schema.py
T
2026-07-19 18:26:00 +09:00

63 lines
1.4 KiB
Python

"""B07 상세 설계 도면 목록·단건 응답 모델."""
from typing import Any, Literal
from pydantic import BaseModel
class DesignDrawingItem(BaseModel):
"""B06 확정 산출물에서 노출하는 도면 메타데이터."""
id: str
kind: Literal["longitudinal", "cross"]
label: str
chainage_m: float | None = None
confirmed: bool = False
class DesignDrawingListResponse(BaseModel):
"""B07 진입 시 캐시할 경량 도면 목록."""
status: str = "success"
project_id: str
route_id: int
drawings: list[DesignDrawingItem]
class DesignDrawingResponse(BaseModel):
"""openwebcad 브리지로 전달할 단일 CAD 도면."""
status: str = "success"
project_id: str
route_id: int
id: str
kind: Literal["longitudinal", "cross"]
label: str
drawing: dict[str, Any]
confirmed: bool = False
class DesignDrawingConfirmRequest(BaseModel):
"""CAD 앱에서 직렬화한 현재 편집 도면."""
drawing: dict[str, Any]
class DesignDrawingConfirmResponse(BaseModel):
"""도면별 확정 및 B07 전체 완료 상태."""
status: str = "success"
project_id: str
id: str
confirmed: bool
all_confirmed: bool
class DesignDrawingInvalidateResponse(BaseModel):
"""확정 도면 변경에 따른 상태 롤백 결과."""
status: str = "success"
project_id: str
id: str
confirmed: bool = False