2026-06-20 세션 — 업체 관리 자재 하위분류(PRODUCT_CAT) + 마스터 목록 영구편집 + 운영배포
논의·대안
업체 관리(/admin/company-permission) 페이지의 자재(PRODUCT_DIV) 항목을 하위 분류(면재류·유리류·소프트·오버레이·기타)로 묶고, 그 분류 자체를 사용자가 편집(추가·이름변경·삭제·순서)하며 항목을 분류 간 드래그 이동하게 해달라는 요청. 핵심은 항목→분류 매핑을 어디에 저장하느냐였다. common_code 테이블에 부모/참조 컬럼이 없어 대안을 검토했다: (A) display_order에 분류를 인코딩(타 화면 정렬 부작용 우려), (B) 별도 정션 그룹 PRODUCT_CAT_MAP(부작용 0이나 코드 증가), (C) common_code에 parent_code 컬럼 신설. 페페가 "common_code에 부모/참조 컬럼 새로 만들어 사용"으로 직접 지정 → (C) 채택. 함께 마스터 목록(common_code) 영구편집 연동(직전 세션은 화면적용만), 라벨 "하드웨어"→"자재"(DB 항목값 80=하드웨어는 유지)도 처리.
결정
- common_code에
parent_code VARCHAR(20)컬럼 신설(페페 승인 ALTER). 자재 항목은PRODUCT_DIV.parent_code로 자기 분류코드를 직접 참조. - 신규 그룹
PRODUCT_CAT(자재분류): 면재류10·유리류20·소프트30·오버레이40·기타50. 초기 매핑은 구 HW_CAT 하드코딩 기준으로 시드. - generic
insert_common_code/update_common_code는 미수정(호출처 영향 0, 기존 update는 파라미터 버그라 회피) → parent 전용 함수 신설. - 모달은 2모드(업체분류 flat / 자재 분류 그룹박스), 작업본 격리 후 [적용] 시 마스터 저장. 분류간 이동은 cross-container 드래그(
moveItem). - 운영배포 진행(페페 명시), DB는 코드배포 전에 test·prod 양쪽 선적용.
산출물·커밋
- pfs
master 8841d9b→deploy-live a156d5b(?v=20260620d). 백엔드 3파일(common_code_dao·user_admin_service·user_admin_controller), 프론트 2파일(company_permission.html·js),migrations/patch35_common_code_parent_code.sql,scripts/_cc_cat_migrate.py(멱등 마이그레이션, ENV_PATH로 test/live). - API:
PUT /api/admin/product-category(categories+items, cat_index 매핑),PUT /api/admin/common-code/<group_code>. - 검증: 테스트 Playwright(env 로그인) — 모달 분류5+매핑+미분류+확대 렌더, 항목 분류간 드래그(AL 기타→면재류)→[적용]→DB
parent_code=10확인→원복(50) 라운드트립 PASS. 운영 분류5 렌더 확인(쓰기검증은 운영데이터 보호 위해 생략). - 시드:
projects/pfs/handoff.mdNOW + 루트HANDOFF.mdNOW 갱신, user_brief 로컬 커밋(1e11b99·a182e61).
다음
- 추가 분류·항목은 운영 화면에서 직접 편집 가능(영구저장). 후속 요청 없으면 종결.
- 자재 분류를 다른 화면(견적/발주서)의 그룹핑에도 활용할지 검토 여지(현재는 업체 관리 칩 클라우드에만 사용).
관계
- 주제 그룹: pfs-admin
- 관련 문서: pfs-handoff