/* ============================================================================= * B05_Profile_Api_Pipes_Draft.ts * B05 배수유역도에서 고친 **관 목록 초안**(세션) — [저장]·[확정]에서만 정본으로 나간다. * * 왜 생겼나(2026-09-06 대응표 조사) — 관 추가·이동·삭제가 패널 메모리에만 있어, B06 으로 * 넘어가 [저장]하면 그 편집이 통째로 사라졌다(`savePipes()` 를 부르는 곳이 B05 [임시저장] * 하나뿐이었다). 다른 조작값과 같은 규칙으로 세션에 쌓고 저장 앞단에서 함께 내보낸다. * * 자동저장은 하지 않는다(CLAUDE.md 5장). * ========================================================================== */ import { readState, writeState } from "../A00_Common/b_page_state"; import { saveDetailPipePoints } from "../B04_PreProcess/B04_PreProcess_Api_Fetch"; import type { DetailPipeInput } from "../B04_PreProcess/B04_PreProcess_Api_Fetch"; /** 세션에 담는 관 한 벌 — 정본 PUT 이 그대로 받는 꼴이다. */ export type PendingPipes = DetailPipeInput[]; export function readPendingPipes(projectId: string): PendingPipes | null { return readState("pipes", projectId); } export function writePendingPipes(projectId: string, next: PendingPipes | null): void { writeState("pipes", next, projectId); } /** 초안이 있으면 정본에 쓰고 비운다. 없으면 아무 일도 하지 않는다. */ export async function flushPendingPipes(projectId: string): Promise { const pending = readPendingPipes(projectId); if (!pending) return; await saveDetailPipePoints(projectId, pending); writePendingPipes(projectId, null); }