knowledge(마스터): 소요량·계수·로직에 구분·상세구분 — 표·줄마다 칸 · 갈래 목록은 서버가 줌
- 장 파일 137 개의 표 3,028 · 로직 1,351 줄에 구분(원문 + 부문 · 「건설품셈 공통」) · 상세구분(「03장 토공사」) 칸을 직접 둠 · 파일 머리의 부문·차례는 목록 차례로 남김 - 열 차례 — 표는 키 · 원문번호 · 구분 · 상세구분 · 이름 · 기준 · 출처 · 비고 · 조건 · 범위규칙 · 값칸 · 줄 · 주 · 그룹(맨 뒤) · 로직은 소유 다음에 비고 - 서버 — GET /subs?group= 이 구분·상세구분 목록(장 차례대로) · GET /tables 가 파일을 가로질러 구분·상세구분·찾기로 거르고 쪽 나눔 · GET /logics 도 구분·상세구분으로 거름 · 새 줄은 서버가 갈래를 채움 · 죽은 book 칸 걷어냄 - check_master 가 구분·상세구분이 파일 머리·이름과 맞는지 봄 · adopt 가 빌더 줄에 갈래를 찍어 되돌리기 시험 글자까지 같음 · _틀.md · 화면 계약 · 화면 트리 · 시험 같이 고침 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
This commit is contained in:
@@ -17,7 +17,6 @@ router = APIRouter(prefix="/api/m01", tags=["M01 MasterData"])
|
||||
|
||||
|
||||
class CalcBody(BaseModel):
|
||||
book: str = "" # 화면 호환 — 키는 전체에서 하나
|
||||
key: str
|
||||
inputs: dict[str, Any] = {}
|
||||
row: dict[str, Any] | None = None # 저장 전 고친 로직 줄(없으면 저장된 파일로)
|
||||
@@ -69,8 +68,8 @@ def get_files(group: str) -> dict:
|
||||
|
||||
|
||||
@router.get("/subs")
|
||||
def get_subs(file: str) -> dict:
|
||||
return _call(store.subs, file)
|
||||
def get_subs(file: str = "", group: str = "") -> dict:
|
||||
return _call(store.subs, file, group)
|
||||
|
||||
|
||||
@router.get("/rows")
|
||||
@@ -87,8 +86,16 @@ def get_rows(
|
||||
|
||||
|
||||
@router.get("/tables")
|
||||
def get_tables(file: str, q: str = "") -> dict:
|
||||
return _call(store.tables, file, q)
|
||||
def get_tables(
|
||||
file: str = "",
|
||||
group: str = "",
|
||||
sub: str = "",
|
||||
detail: str = "",
|
||||
q: str = "",
|
||||
page: int = 1,
|
||||
size: int = 30,
|
||||
) -> dict:
|
||||
return _call(store.tables, file, group, sub, detail, q, page, size)
|
||||
|
||||
|
||||
@router.get("/table")
|
||||
@@ -97,13 +104,13 @@ def get_table(file: str, key: str) -> dict:
|
||||
|
||||
|
||||
@router.get("/logics")
|
||||
def get_logics(book: str = "", chapter: str = "", q: str = "", blocked: int | None = None) -> dict:
|
||||
return {"logics": _call(store.logics, book, chapter, q, blocked)}
|
||||
def get_logics(sub: str = "", detail: str = "", q: str = "", blocked: int | None = None) -> dict:
|
||||
return {"logics": _call(store.logics, sub, detail, q, blocked)}
|
||||
|
||||
|
||||
@router.get("/logic")
|
||||
def get_logic(key: str, book: str = "") -> dict:
|
||||
return _call(store.logic, book, key)
|
||||
def get_logic(key: str) -> dict:
|
||||
return _call(store.logic, key)
|
||||
|
||||
|
||||
@router.get("/elements")
|
||||
@@ -118,7 +125,7 @@ def get_pick(kind: str, q: str = "", limit: int = 50) -> dict:
|
||||
|
||||
@router.post("/calc")
|
||||
def post_calc(body: CalcBody) -> dict:
|
||||
return _call(store.calc, body.book, body.key, body.inputs, body.row, body.file)
|
||||
return _call(store.calc, body.key, body.inputs, body.row, body.file)
|
||||
|
||||
|
||||
@router.post("/save")
|
||||
|
||||
Reference in New Issue
Block a user