feat(b09-print): 인쇄 미리보기 약속 파일 — PrintSheet · CollectSheets · DrawingItem · FetchDrawingList · FetchDrawingsPdf (302-1)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QfHKQs7J3hQELKMWQMUJEy
This commit is contained in:
2026-10-13 07:44:07 +09:00
co-authored by Claude Opus 5.5
parent d7ba07832c
commit 5034fa4ea8
@@ -0,0 +1,32 @@
/* =============================================================================
* B09_Draft_Print_Types.ts
* 인쇄 미리보기(PLAN 302 · 초안) 약속 — 영역 셋이 페이지(`B09_Draft_Print_Page`)에 넘기는 꼴.
* 수량산출 = `B09_Draft_Print_Quantity.collectQuantitySheets` · 원가계산 = `B09_Draft_Print_Cost.collectCostSheets`
* → PrintSheet[](쪽 = 시트 · 차례 그대로) → 서버 표 PDF · 엑셀
* 도면 = `B09_Draft_Print_Drawings.fetchDrawingList` · `fetchDrawingsPdf`(서버가 만든 PDF 그대로)
* ========================================================================== */
import type { DataTableOptions } from "@ui/ui_template_data_table";
/** 표 한 쪽(시트) — 화면과 같은 표 짜기 + 쪽 방향 · 붙일 그림 */
export interface PrintSheet {
id: string;
name: string;
table: DataTableOptions;
orientation?: "portrait" | "landscape";
images?: { src: string; caption?: string }[];
}
/** 수량산출 · 원가계산 영역 — 프로젝트의 쪽 목록(차례 그대로) */
export type CollectSheets = (projectId: string) => Promise<PrintSheet[]>;
/** 도면 영역 한 장 — id = fetchDrawingsPdf 의 ids 로 돌려줌 */
export interface DrawingItem {
id: string;
name: string;
}
export type FetchDrawingList = (projectId: string) => Promise<DrawingItem[]>;
/** ids 없음 = 목록 전부 · 있으면 그 차례대로 */
export type FetchDrawingsPdf = (projectId: string, ids?: string[]) => Promise<Blob>;