/* ============================================================================= * M02_SO_Api.ts * 구조물 옵션 보이기 서버 호출 — 서버 = `M02_SO_Router.py`(마스터 템플릿 `구조물옵션표시.json`) * ========================================================================== */ import { call } from "../M02_MasterTemplete_Api_Fetch"; export interface OptionKind { type_id: string; group: string; name: string; /** 거짓이면 B05 선택지에 안 나오는 종류 */ enabled: boolean; options: { key: string; label: string; phase: "b05" | "detail"; required: boolean }[]; } /** 판 · 표시(숨긴 것만 `{종류: {옵션: false}}`) · 종류(옵션이 있는 것과 그 옵션) */ export interface OptionsDoc { 판: string; 표시: Record>; 종류: OptionKind[]; } export const fetchStructureOptions = (): Promise => call("/layers/system/structure-options"); // 읽기 = 로그인 누구나 · 고쳐 씀은 시스템 관리자 /** 고쳐 씀 — 숨긴 것만 보냄 · 낡은 판이면 StaleError · 돌려받는 것은 새 문서 */ export const saveStructureOptions = (판: string, 표시: OptionsDoc["표시"]): Promise => call("/structure-options", { method: "PUT", body: JSON.stringify({ 판, 표시 }) });