/**
 * 종합 메뉴 기능 정의서
 * 모든 메뉴 > 페이지 > 섹션 > 항목 > 속성 > 상태값 완전 정의
 * 플로우차트 및 기능정의문서 패널용
 */

// 상태 변경 시나리오 정의
export const STATE_TRANSITIONS = {
  // 견적 상태
  quote: {
    states: ['최초작성', '고객발송', '고객확인중', '수정요청', '확정', '수주전환', '취소'],
    transitions: [
      { from: '최초작성', to: '고객발송', trigger: '견적서 발송', action: '이메일/팩스 전송' },
      { from: '고객발송', to: '고객확인중', trigger: '고객 수신 확인', action: '상태 자동변경' },
      { from: '고객확인중', to: '수정요청', trigger: '고객 수정요청', action: '수정요청 내용 기록' },
      { from: '수정요청', to: '최초작성', trigger: '견적서 수정', action: '수정 내역 저장' },
      { from: '고객확인중', to: '확정', trigger: '고객 확정', action: '확정일시 기록' },
      { from: '확정', to: '수주전환', trigger: '수주 등록', action: '수주번호 생성, 견적 연결' },
      { from: ['최초작성', '고객발송', '고객확인중', '수정요청'], to: '취소', trigger: '견적 취소', action: '취소 사유 기록' },
    ],
  },
  // 수주 상태
  order: {
    states: ['수주등록', '생산준비', '생산진행', '생산완료', '출하대기', '출하완료', '취소'],
    transitions: [
      { from: '수주등록', to: '생산준비', trigger: '작업지시 생성', action: '작업지시서 발행' },
      { from: '생산준비', to: '생산진행', trigger: '작업 시작', action: '작업자 배정' },
      { from: '생산진행', to: '생산완료', trigger: '전 공정 완료', action: 'FQC 검사 대기' },
      { from: '생산완료', to: '출하대기', trigger: 'FQC 합격', action: '출하 가능 상태' },
      { from: '출하대기', to: '출하완료', trigger: '출하 등록', action: '출하번호 생성' },
      { from: ['수주등록', '생산준비'], to: '취소', trigger: '수주 취소', action: '취소 사유 기록' },
    ],
  },
  // 작업지시 상태
  workOrder: {
    states: ['지시대기', '작업배정', '작업중', '검사대기', '검사완료', '완료', '보류'],
    transitions: [
      { from: '지시대기', to: '작업배정', trigger: '작업자 배정', action: '작업자/설비 지정' },
      { from: '작업배정', to: '작업중', trigger: '작업 시작', action: '시작시간 기록' },
      { from: '작업중', to: '검사대기', trigger: '작업 완료', action: 'PQC 요청' },
      { from: '검사대기', to: '검사완료', trigger: 'PQC 합격', action: '합격 판정' },
      { from: '검사대기', to: '작업중', trigger: 'PQC 불합격', action: '재작업 지시' },
      { from: '검사완료', to: '완료', trigger: '최종 확인', action: '완료일시 기록' },
      { from: ['지시대기', '작업배정', '작업중'], to: '보류', trigger: '작업 보류', action: '보류 사유 기록' },
    ],
  },
  // 검사 상태
  inspection: {
    states: ['검사대기', '검사중', '합격', '조건부합격', '불합격', '재검사'],
    transitions: [
      { from: '검사대기', to: '검사중', trigger: '검사 시작', action: '검사원 배정' },
      { from: '검사중', to: '합격', trigger: '모든 항목 합격', action: '합격 처리' },
      { from: '검사중', to: '조건부합격', trigger: '특채 승인', action: '특채 사유 기록' },
      { from: '검사중', to: '불합격', trigger: '불합격 항목 존재', action: '부적합품 등록' },
      { from: '불합격', to: '재검사', trigger: '재작업 완료', action: '재검사 요청' },
      { from: '재검사', to: '검사중', trigger: '재검사 시작', action: '재검사 기록' },
    ],
  },
  // 출하 상태
  shipment: {
    states: ['출고대기', '출고준비', '상차대기', '배송중', '배송완료', '반품'],
    transitions: [
      { from: '출고대기', to: '출고준비', trigger: '출고 조건 충족', action: '배차 준비' },
      { from: '출고준비', to: '상차대기', trigger: '배차 완료', action: '차량/기사 배정' },
      { from: '상차대기', to: '배송중', trigger: '상차 완료', action: '출발시간 기록' },
      { from: '배송중', to: '배송완료', trigger: '납품 완료', action: '인수자 서명' },
      { from: '배송완료', to: '반품', trigger: '반품 요청', action: '반품 사유 기록' },
    ],
  },
};

// 종합 메뉴 기능 정의
export const COMPREHENSIVE_MENU_FEATURES = {
  // ==================== 기준정보 ====================
  master: {
    id: 'master',
    label: '기준정보',
    description: '시스템 기준 데이터 관리 - 품목/공정/검사/거래처/현장/문서양식 등',
    pages: {
      // 품목기준관리
      'item-master': {
        id: 'item-master',
        label: '품목기준관리',
        description: '생산/판매에 사용되는 품목의 기준정보를 관리합니다.',
        screens: {
          list: {
            title: '품목기준 목록',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '품목기준 목록' },
                  { id: 'btn-add', type: 'button', label: '품목 등록', action: '등록 화면 이동', variant: 'primary' },
                ],
              },
              {
                id: 'report-cards',
                title: '리포트 카드',
                items: [
                  { id: 'total-items', type: 'card', label: '전체 품목', dataSource: 'items.length' },
                  { id: 'product-items', type: 'card', label: '제품', dataSource: 'items.filter(type=제품).length' },
                  { id: 'part-items', type: 'card', label: '부품', dataSource: 'items.filter(type=부품).length' },
                  { id: 'material-items', type: 'card', label: '자재', dataSource: 'items.filter(type=자재).length' },
                ],
              },
              {
                id: 'search',
                title: '검색 영역',
                items: [
                  { id: 'search-input', type: 'input', label: '검색', placeholder: '품목코드, 품목명, 규격 검색...' },
                  { id: 'filter-type', type: 'select', label: '품목유형', options: ['전체', '제품', '조립부품', '절곡부품', '원자재', '부자재', '소모품'] },
                  { id: 'filter-process', type: 'select', label: '공정', options: ['전체', '스크린', '슬랫', '절곡', '포밍', '구매품'] },
                ],
              },
              {
                id: 'table',
                title: '품목 테이블',
                items: [
                  { id: 'col-checkbox', type: 'checkbox', label: '선택' },
                  { id: 'col-code', type: 'column', label: '품목코드', sortable: true },
                  { id: 'col-name', type: 'column', label: '품목명', sortable: true },
                  { id: 'col-type', type: 'column', label: '품목유형' },
                  { id: 'col-process', type: 'column', label: '공정' },
                  { id: 'col-spec', type: 'column', label: '규격' },
                  { id: 'col-unit', type: 'column', label: '단위' },
                  { id: 'col-price', type: 'column', label: '단가', format: 'currency' },
                  { id: 'col-actions', type: 'row-action', label: '작업', actions: ['수정', '삭제'], condition: '선택 시에만 표시' },
                ],
              },
            ],
            states: ['목록조회', '검색중', '선택됨', '다중선택'],
          },
          register: {
            title: '품목기준 등록',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '품목기준 등록' },
                  { id: 'btn-cancel', type: 'button', label: '취소', action: '목록으로 이동', variant: 'outline' },
                  { id: 'btn-save', type: 'button', label: '저장', action: '데이터 저장 후 목록 이동', variant: 'primary' },
                ],
              },
              {
                id: 'basic-info',
                title: '기본 정보',
                items: [
                  { id: 'item-code', type: 'input', label: '품목코드', required: true, autoGenerate: true, pattern: '{유형약어}{폭}{높이}' },
                  { id: 'item-name', type: 'input', label: '품목명', required: true },
                  { id: 'item-type', type: 'select', label: '품목유형', required: true, options: ['제품', '조립부품', '절곡부품', '원자재', '부자재', '소모품', '구매부품'] },
                  { id: 'process', type: 'select', label: '공정', options: ['스크린', '슬랫', '절곡', '포밍', '구매품'] },
                  { id: 'unit', type: 'select', label: '단위', options: ['EA', 'SET', 'M', 'KG', 'BOX'] },
                ],
              },
              {
                id: 'spec-info',
                title: '규격 정보',
                items: [
                  { id: 'width', type: 'number', label: '폭(W)', unit: 'mm' },
                  { id: 'height', type: 'number', label: '높이(H)', unit: 'mm' },
                  { id: 'depth', type: 'number', label: '깊이(D)', unit: 'mm' },
                  { id: 'weight', type: 'number', label: '중량', unit: 'kg' },
                  { id: 'spec-text', type: 'input', label: '규격(텍스트)' },
                ],
              },
              {
                id: 'price-info',
                title: '단가 정보',
                items: [
                  { id: 'purchase-price', type: 'number', label: '입고단가', format: 'currency' },
                  { id: 'sales-price', type: 'number', label: '판매단가', format: 'currency' },
                  { id: 'cost-price', type: 'number', label: '원가', format: 'currency' },
                ],
              },
              {
                id: 'etc-info',
                title: '기타 정보',
                items: [
                  { id: 'safety-stock', type: 'number', label: '안전재고' },
                  { id: 'lead-time', type: 'number', label: '조달기간', unit: '일' },
                  { id: 'remark', type: 'textarea', label: '비고' },
                ],
              },
            ],
            validation: {
              required: ['item-code', 'item-name', 'item-type'],
              autoGenerate: { 'item-code': 'generateItemCode(type, width, height)' },
            },
          },
        },
        workflow: {
          steps: ['목록 조회', '품목 등록', '품목 수정', '품목 삭제'],
          dataFlow: {
            input: ['품목유형', '규격', '단가'],
            output: ['품목코드(자동생성)', '품목마스터'],
            linkedTo: ['견적관리', '수주관리', '작업지시', '재고관리'],
          },
        },
      },
      // 공정기준관리
      'process-master': {
        id: 'process-master',
        label: '공정기준관리',
        description: '생산 공정의 순서, 작업 단계, 설비, 표준 시간 등을 관리합니다.',
        screens: {
          list: {
            title: '공정기준 목록',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '공정기준 목록' },
                  { id: 'btn-add', type: 'button', label: '공정 등록', action: '등록 화면 이동', variant: 'primary' },
                ],
              },
              {
                id: 'process-tree',
                title: '공정 트리',
                items: [
                  { id: 'process-1', type: 'tree-node', label: '스크린 공정', children: ['절단', '미싱', '앤드락'] },
                  { id: 'process-2', type: 'tree-node', label: '슬랫 공정', children: ['슬랫 절단', '슬랫 가공', '슬랫 조립'] },
                  { id: 'process-3', type: 'tree-node', label: '절곡 공정', children: ['절곡 준비', '절곡 작업', '검사'] },
                  { id: 'process-4', type: 'tree-node', label: '포밍 공정', children: ['포밍', '용접', '도장'] },
                ],
              },
            ],
          },
          register: {
            title: '공정기준 등록',
            sections: [
              {
                id: 'basic-info',
                title: '기본 정보',
                items: [
                  { id: 'process-code', type: 'input', label: '공정코드', required: true },
                  { id: 'process-name', type: 'input', label: '공정명', required: true },
                  { id: 'process-order', type: 'number', label: '공정순서', required: true },
                  { id: 'parent-process', type: 'select', label: '상위공정' },
                ],
              },
              {
                id: 'work-steps',
                title: '작업단계 설정',
                items: [
                  { id: 'steps-table', type: 'table', label: '작업단계', columns: ['순서', '작업명', '표준시간', '설비'] },
                  { id: 'btn-add-step', type: 'button', label: '단계 추가', variant: 'outline' },
                ],
              },
              {
                id: 'equipment',
                title: '설비 연결',
                items: [
                  { id: 'equipment-list', type: 'multi-select', label: '사용 설비', options: ['절단기', '미싱기', '프레스', '용접기'] },
                ],
              },
            ],
          },
        },
        workflow: {
          steps: ['공정 정의', '작업단계 설정', '설비 연결', '표준시간 설정'],
          dataFlow: {
            input: ['공정명', '작업순서', '설비정보'],
            output: ['공정마스터', '작업표준'],
            linkedTo: ['작업지시', '생산실적', '품질검사'],
          },
        },
      },
      // 품질기준관리
      'quality-master': {
        id: 'quality-master',
        label: '품질기준관리',
        description: 'IQC/PQC/FQC 검사 항목, 기준값, 판정 기준을 관리합니다.',
        screens: {
          list: {
            title: '품질기준 목록',
            sections: [
              {
                id: 'filter-tabs',
                title: '검사유형 탭',
                items: [
                  { id: 'tab-all', type: 'tab', label: '전체' },
                  { id: 'tab-iqc', type: 'tab', label: 'IQC (수입검사)' },
                  { id: 'tab-pqc', type: 'tab', label: 'PQC (중간검사)' },
                  { id: 'tab-fqc', type: 'tab', label: 'FQC (제품검사)' },
                ],
              },
              {
                id: 'table',
                title: '검사기준 테이블',
                items: [
                  { id: 'col-code', type: 'column', label: '검사코드' },
                  { id: 'col-name', type: 'column', label: '검사명' },
                  { id: 'col-type', type: 'column', label: '검사유형' },
                  { id: 'col-target', type: 'column', label: '적용대상' },
                  { id: 'col-items', type: 'column', label: '검사항목수' },
                ],
              },
            ],
          },
          register: {
            title: '검사기준 등록',
            sections: [
              {
                id: 'basic-info',
                title: '기본 정보',
                items: [
                  { id: 'inspection-type', type: 'select', label: '검사유형', required: true, options: ['IQC', 'PQC', 'FQC'] },
                  { id: 'inspection-name', type: 'input', label: '검사명', required: true },
                  { id: 'target-type', type: 'select', label: '적용대상', options: ['품목별', '공정별', '전체'] },
                ],
              },
              {
                id: 'inspection-items',
                title: '검사항목 설정',
                items: [
                  { id: 'items-table', type: 'table', label: '검사항목', columns: ['항목명', '검사방법', '기준값', '허용오차', '판정기준'] },
                  { id: 'btn-add-item', type: 'button', label: '항목 추가', variant: 'outline' },
                ],
              },
            ],
          },
        },
        workflow: {
          steps: ['검사유형 선택', '검사항목 정의', '기준값 설정', '판정기준 설정'],
          dataFlow: {
            input: ['검사유형', '검사항목', '기준값'],
            output: ['검사기준마스터'],
            linkedTo: ['수입검사(IQC)', '중간검사(PQC)', '제품검사(FQC)'],
          },
        },
      },
      // 현장기준관리
      'site-master': {
        id: 'site-master',
        label: '현장기준관리',
        description: '납품 현장에 대한 기준 정보를 관리합니다.',
        screens: {
          list: {
            title: '현장기준 목록',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '현장기준 목록' },
                  { id: 'btn-add', type: 'button', label: '현장 등록', variant: 'primary' },
                ],
              },
              {
                id: 'table',
                title: '현장 테이블',
                items: [
                  { id: 'col-checkbox', type: 'checkbox', label: '선택' },
                  { id: 'col-code', type: 'column', label: '현장코드', pattern: 'S-###' },
                  { id: 'col-name', type: 'column', label: '현장명' },
                  { id: 'col-customer', type: 'column', label: '발주처' },
                  { id: 'col-address', type: 'column', label: '주소' },
                  { id: 'col-manager', type: 'column', label: '현장담당자' },
                  { id: 'col-phone', type: 'column', label: '연락처' },
                ],
              },
            ],
          },
          register: {
            title: '현장기준 등록',
            sections: [
              {
                id: 'basic-info',
                title: '기본 정보',
                items: [
                  { id: 'site-code', type: 'input', label: '현장코드', autoGenerate: true, pattern: 'S-###' },
                  { id: 'site-name', type: 'input', label: '현장명', required: true },
                  { id: 'customer', type: 'search-select', label: '발주처' },
                  { id: 'manager', type: 'input', label: '현장담당자' },
                  { id: 'phone', type: 'input', label: '연락처' },
                ],
              },
              {
                id: 'address-info',
                title: '주소 정보',
                items: [
                  { id: 'postal-code', type: 'input', label: '우편번호' },
                  { id: 'address', type: 'input', label: '주소' },
                  { id: 'address-detail', type: 'input', label: '상세주소' },
                ],
              },
            ],
          },
        },
      },
      // 채번관리
      'number-rule': {
        id: 'number-rule',
        label: '채번관리',
        description: '문서번호 자동생성 규칙을 관리합니다.',
        screens: {
          list: {
            title: '채번규칙 목록',
            sections: [
              {
                id: 'table',
                title: '채번규칙 테이블',
                items: [
                  { id: 'col-doc-type', type: 'column', label: '문서유형' },
                  { id: 'col-prefix', type: 'column', label: '접두사' },
                  { id: 'col-pattern', type: 'column', label: '채번패턴' },
                  { id: 'col-example', type: 'column', label: '예시' },
                  { id: 'col-reset', type: 'column', label: '리셋주기' },
                  { id: 'col-current', type: 'column', label: '현재번호' },
                ],
              },
            ],
            description: '문서유형별 채번 규칙: QT(견적), SO(수주), WO(작업지시), SL(출하), IQC/PQC/FQC(검사), NCR(부적합), LOT 등',
          },
        },
      },
      // 공통코드관리
      'code-rule': {
        id: 'code-rule',
        label: '공통코드관리',
        description: '품목코드, LOT번호, 거래처코드 등 코드 생성 규칙을 관리합니다.',
        screens: {
          list: {
            title: '공통코드 목록',
            sections: [
              {
                id: 'table',
                title: '코드규칙 테이블',
                items: [
                  { id: 'col-category', type: 'column', label: '코드분류' },
                  { id: 'col-type', type: 'column', label: '유형' },
                  { id: 'col-pattern', type: 'column', label: '코드패턴' },
                  { id: 'col-example', type: 'column', label: '예시' },
                  { id: 'col-description', type: 'column', label: '설명' },
                ],
              },
            ],
            description: '품목코드(SH, DR, RC 등), LOT번호, 거래처코드(CUS/SUP), 현장코드(S) 등',
          },
        },
      },
      // 견적수식관리
      'quote-formula': {
        id: 'quote-formula',
        label: '견적수식관리',
        description: '제품별 견적 단가 계산 수식을 관리합니다.',
        screens: {
          list: {
            title: '견적수식 목록',
            sections: [
              {
                id: 'table',
                title: '수식 테이블',
                items: [
                  { id: 'col-product-type', type: 'column', label: '제품유형' },
                  { id: 'col-formula-name', type: 'column', label: '수식명' },
                  { id: 'col-formula', type: 'column', label: '수식' },
                  { id: 'col-variables', type: 'column', label: '변수' },
                  { id: 'col-active', type: 'column', label: '사용여부' },
                ],
              },
            ],
          },
          register: {
            title: '견적수식 등록',
            sections: [
              {
                id: 'formula-info',
                title: '수식 정보',
                items: [
                  { id: 'product-type', type: 'select', label: '제품유형', options: ['방화셔터', '방화문', '방연셔터', '스틸셔터'] },
                  { id: 'formula-name', type: 'input', label: '수식명', required: true },
                  { id: 'formula', type: 'textarea', label: '수식', description: '예: (width * height * unitPrice) + laborCost' },
                  { id: 'variables', type: 'multi-input', label: '변수 정의' },
                ],
              },
            ],
          },
        },
      },
      // 문서양식관리
      'document-template': {
        id: 'document-template',
        label: '문서양식관리',
        description: '견적서, 작업지시서, 출고증 등 출력 문서 양식을 관리합니다.',
        screens: {
          list: {
            title: '문서양식 목록',
            sections: [
              {
                id: 'table',
                title: '양식 테이블',
                items: [
                  { id: 'col-doc-type', type: 'column', label: '문서유형' },
                  { id: 'col-template-name', type: 'column', label: '양식명' },
                  { id: 'col-format', type: 'column', label: '출력형식' },
                  { id: 'col-active', type: 'column', label: '사용여부' },
                  { id: 'col-preview', type: 'column', label: '미리보기' },
                ],
              },
            ],
            description: '견적서, 산출내역서, 발주서, 수주확인서, 작업지시서, 출고증, 거래명세서, 세금계산서 등',
          },
        },
      },
    },
  },

  // ==================== 판매관리 ====================
  sales: {
    id: 'sales',
    label: '판매관리',
    description: '견적/수주/출하/거래처/현장 관리',
    pages: {
      // 거래처관리
      customer: {
        id: 'customer',
        label: '거래처관리',
        description: '고객사 및 공급업체 정보를 관리합니다.',
        screens: {
          list: {
            title: '거래처 목록',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '거래처 목록' },
                  { id: 'btn-add', type: 'button', label: '거래처 등록', action: '등록 화면 이동', variant: 'primary' },
                ],
              },
              {
                id: 'report-cards',
                title: '리포트 카드',
                items: [
                  { id: 'total', type: 'card', label: '전체 거래처' },
                  { id: 'customer', type: 'card', label: '고객사' },
                  { id: 'supplier', type: 'card', label: '공급업체' },
                  { id: 'active', type: 'card', label: '활성 거래처' },
                ],
              },
              {
                id: 'search',
                title: '검색 영역',
                items: [
                  { id: 'search-input', type: 'input', label: '검색', placeholder: '거래처코드, 상호, 담당자 검색...' },
                  { id: 'filter-type', type: 'select', label: '거래처유형', options: ['전체', '고객사', '공급업체', '고객+공급'] },
                  { id: 'filter-grade', type: 'select', label: '신용등급', options: ['전체', 'A', 'B', 'C'] },
                ],
              },
              {
                id: 'table',
                title: '거래처 테이블',
                items: [
                  { id: 'col-checkbox', type: 'checkbox', label: '선택' },
                  { id: 'col-code', type: 'column', label: '거래처코드', pattern: 'CUS-###' },
                  { id: 'col-name', type: 'column', label: '상호', sortable: true },
                  { id: 'col-type', type: 'column', label: '유형' },
                  { id: 'col-ceo', type: 'column', label: '대표자' },
                  { id: 'col-contact', type: 'column', label: '담당자' },
                  { id: 'col-phone', type: 'column', label: '연락처' },
                  { id: 'col-grade', type: 'column', label: '신용등급' },
                  { id: 'col-actions', type: 'row-action', label: '작업', actions: ['수정', '삭제'] },
                ],
              },
            ],
          },
          register: {
            title: '거래처 등록',
            sections: [
              {
                id: 'basic-info',
                title: '기본 정보',
                items: [
                  { id: 'customer-code', type: 'input', label: '거래처코드', autoGenerate: true, pattern: 'CUS-###' },
                  { id: 'customer-name', type: 'input', label: '상호', required: true },
                  { id: 'customer-type', type: 'select', label: '거래처유형', options: ['고객사', '공급업체', '고객+공급'] },
                  { id: 'biz-no', type: 'input', label: '사업자번호', format: '000-00-00000' },
                  { id: 'ceo-name', type: 'input', label: '대표자명' },
                ],
              },
              {
                id: 'contact-info',
                title: '연락처 정보',
                items: [
                  { id: 'contact-name', type: 'input', label: '담당자명' },
                  { id: 'contact-phone', type: 'input', label: '연락처' },
                  { id: 'contact-email', type: 'input', label: '이메일' },
                  { id: 'fax', type: 'input', label: '팩스' },
                ],
              },
              {
                id: 'address-info',
                title: '주소 정보',
                items: [
                  { id: 'address', type: 'input', label: '주소' },
                  { id: 'address-detail', type: 'input', label: '상세주소' },
                ],
              },
              {
                id: 'credit-info',
                title: '신용 정보',
                items: [
                  { id: 'credit-grade', type: 'select', label: '신용등급', options: ['A', 'B', 'C'], description: 'A: 무조건 출하, B: 입금확인 필요, C: 입금+세금계산서 필요' },
                  { id: 'credit-limit', type: 'number', label: '여신한도', format: 'currency' },
                ],
              },
            ],
          },
        },
        workflow: {
          steps: ['거래처 등록', '신용등급 설정', '담당자 지정', '거래 시작'],
        },
      },
      // 견적관리
      quote: {
        id: 'quote',
        label: '견적관리',
        description: '고객 요청에 대한 견적서를 작성하고 관리합니다.',
        screens: {
          list: {
            title: '견적 목록',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '견적 목록' },
                  { id: 'btn-add', type: 'button', label: '견적 등록', action: '등록 화면 이동', variant: 'primary' },
                ],
              },
              {
                id: 'report-cards',
                title: '리포트 카드',
                items: [
                  { id: 'monthly-amount', type: 'card', label: '이번 달 견적 금액', format: 'currency' },
                  { id: 'pending-amount', type: 'card', label: '진행중 견적 금액', format: 'currency' },
                  { id: 'weekly-new', type: 'card', label: '이번 주 신규 견적' },
                  { id: 'conversion-rate', type: 'card', label: '수주 전환율', format: 'percent' },
                ],
              },
              {
                id: 'search',
                title: '검색 영역',
                items: [
                  { id: 'search-input', type: 'input', label: '검색', placeholder: '견적번호, 발주처, 담당자, 제품명, 현장코드, 현장명 검색...' },
                ],
              },
              {
                id: 'table',
                title: '견적 테이블',
                items: [
                  { id: 'col-checkbox', type: 'checkbox', label: '선택' },
                  { id: 'col-quote-no', type: 'column', label: '견적번호', pattern: 'QT-YYMMDD-##', sortable: true },
                  { id: 'col-date', type: 'column', label: '견적일자', format: 'date' },
                  { id: 'col-customer', type: 'column', label: '발주처' },
                  { id: 'col-site', type: 'column', label: '현장명' },
                  { id: 'col-product', type: 'column', label: '제품/수량' },
                  { id: 'col-amount', type: 'column', label: '견적금액', format: 'currency' },
                  { id: 'col-status', type: 'column', label: '상태', states: STATE_TRANSITIONS.quote.states },
                  { id: 'col-manager', type: 'column', label: '담당자' },
                  { id: 'col-actions', type: 'row-action', label: '작업', actions: ['수정', '삭제', '복사', '수주전환'] },
                ],
              },
            ],
            stateTransitions: STATE_TRANSITIONS.quote,
          },
          register: {
            title: '견적 등록',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '견적 등록' },
                  { id: 'btn-cancel', type: 'button', label: '취소', variant: 'outline' },
                  { id: 'btn-save', type: 'button', label: '저장', variant: 'primary' },
                ],
              },
              {
                id: 'basic-info',
                title: '기본 정보',
                items: [
                  { id: 'quote-no', type: 'input', label: '견적번호', autoGenerate: true, readOnly: true, pattern: 'QT-YYMMDD-##' },
                  { id: 'quote-date', type: 'date', label: '견적일자', defaultValue: 'today' },
                  { id: 'customer', type: 'search-select', label: '발주처', required: true, searchTarget: '거래처' },
                  { id: 'site', type: 'search-select', label: '현장', searchTarget: '현장' },
                  { id: 'manager', type: 'select', label: '담당자', dataSource: 'users' },
                  { id: 'valid-until', type: 'date', label: '유효기한' },
                ],
              },
              {
                id: 'product-info',
                title: '제품 정보',
                items: [
                  { id: 'product-table', type: 'editable-table', label: '제품 목록', columns: ['품목코드', '품목명', '규격', '수량', '단가', '공급가', '세액', '합계'] },
                  { id: 'btn-add-product', type: 'button', label: '품목 추가', variant: 'outline' },
                  { id: 'btn-calc-formula', type: 'button', label: '견적수식 적용', variant: 'outline' },
                ],
              },
              {
                id: 'summary',
                title: '합계',
                items: [
                  { id: 'supply-amount', type: 'display', label: '공급가액', format: 'currency', calculation: 'SUM(공급가)' },
                  { id: 'tax-amount', type: 'display', label: '세액', format: 'currency', calculation: 'SUM(세액)' },
                  { id: 'total-amount', type: 'display', label: '합계금액', format: 'currency', calculation: '공급가액 + 세액' },
                ],
              },
              {
                id: 'etc',
                title: '기타',
                items: [
                  { id: 'delivery-date', type: 'date', label: '납기요청일' },
                  { id: 'delivery-place', type: 'input', label: '납품장소' },
                  { id: 'payment-terms', type: 'input', label: '결제조건' },
                  { id: 'remark', type: 'textarea', label: '비고' },
                ],
              },
            ],
          },
          detail: {
            title: '견적 상세',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '견적 상세' },
                  { id: 'quote-no-badge', type: 'badge', label: '견적번호' },
                  { id: 'status-badge', type: 'badge', label: '상태' },
                ],
              },
              {
                id: 'doc-buttons',
                title: '문서 버튼 (좌측)',
                items: [
                  { id: 'btn-quote-doc', type: 'button', label: '견적서', action: '견적서 출력 모달', icon: 'Printer' },
                  { id: 'btn-calculation', type: 'button', label: '산출내역서', action: '산출내역서 출력 모달', icon: 'Printer' },
                  { id: 'btn-po', type: 'button', label: '발주서', action: '발주서 출력 모달', icon: 'Printer' },
                ],
              },
              {
                id: 'action-buttons',
                title: '액션 버튼 (우측)',
                items: [
                  { id: 'btn-list', type: 'button', label: '목록', action: '목록 화면 이동', variant: 'outline' },
                  { id: 'btn-edit', type: 'button', label: '수정', action: '수정 화면 이동', variant: 'primary' },
                  { id: 'btn-confirm', type: 'button', label: '최종확정', action: '상태를 확정으로 변경', variant: 'primary', condition: '상태=고객확인중' },
                  { id: 'btn-order', type: 'button', label: '수주전환', action: '수주 등록 화면으로 데이터 전달', variant: 'primary', condition: '상태=확정' },
                ],
              },
              {
                id: 'basic-info',
                title: '기본 정보',
                items: [
                  { id: 'quote-no', type: 'display', label: '견적번호' },
                  { id: 'quote-date', type: 'display', label: '견적일자' },
                  { id: 'customer', type: 'display', label: '발주처' },
                  { id: 'site', type: 'display', label: '현장명' },
                  { id: 'manager', type: 'display', label: '담당자' },
                  { id: 'status', type: 'display', label: '상태' },
                ],
              },
              {
                id: 'product-info',
                title: '제품 정보',
                items: [
                  { id: 'product-table', type: 'table', label: '제품 목록', readOnly: true },
                ],
              },
              {
                id: 'history',
                title: '변경 이력',
                items: [
                  { id: 'history-table', type: 'table', label: '이력', columns: ['일시', '변경내용', '변경자'] },
                ],
              },
            ],
            stateTransitions: STATE_TRANSITIONS.quote,
          },
        },
        workflow: {
          steps: ['견적 등록', '고객 발송', '고객 확인', '확정/수정요청', '수주 전환'],
          documents: ['견적서', '산출내역서', '발주서'],
          dataFlow: {
            input: ['고객정보', '현장정보', '품목정보', '단가'],
            output: ['견적번호(QT-YYMMDD-##)', '견적데이터'],
            linkedTo: ['수주관리'],
          },
        },
      },
      // 수주관리
      order: {
        id: 'order',
        label: '수주관리',
        description: '확정된 견적을 수주로 전환하고 생산/출하까지 관리합니다.',
        screens: {
          list: {
            title: '수주 목록',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '수주 목록' },
                  { id: 'btn-add', type: 'button', label: '수주 등록', variant: 'primary' },
                ],
              },
              {
                id: 'report-cards',
                title: '리포트 카드',
                items: [
                  { id: 'monthly-amount', type: 'card', label: '이번 달 수주 금액' },
                  { id: 'in-progress', type: 'card', label: '진행중 수주' },
                  { id: 'weekly-new', type: 'card', label: '이번 주 신규 수주' },
                  { id: 'completed', type: 'card', label: '완료 수주' },
                ],
              },
              {
                id: 'table',
                title: '수주 테이블',
                items: [
                  { id: 'col-checkbox', type: 'checkbox', label: '선택' },
                  { id: 'col-order-no', type: 'column', label: '수주번호', pattern: 'SO-YYMMDD-##' },
                  { id: 'col-date', type: 'column', label: '수주일자' },
                  { id: 'col-customer', type: 'column', label: '발주처' },
                  { id: 'col-site', type: 'column', label: '현장명' },
                  { id: 'col-product', type: 'column', label: '제품/수량' },
                  { id: 'col-amount', type: 'column', label: '수주금액' },
                  { id: 'col-status', type: 'column', label: '상태', states: STATE_TRANSITIONS.order.states },
                  { id: 'col-delivery', type: 'column', label: '납기일' },
                  { id: 'col-actions', type: 'row-action', label: '작업', actions: ['수정', '삭제', '작업지시', '출하등록'] },
                ],
              },
            ],
            stateTransitions: STATE_TRANSITIONS.order,
          },
          register: {
            title: '수주 등록',
            sections: [
              {
                id: 'basic-info',
                title: '기본 정보',
                items: [
                  { id: 'order-no', type: 'input', label: '수주번호', autoGenerate: true, pattern: 'SO-YYMMDD-##' },
                  { id: 'quote-no', type: 'search-select', label: '견적번호', description: '견적에서 전환 시 자동입력' },
                  { id: 'order-date', type: 'date', label: '수주일자' },
                  { id: 'customer', type: 'search-select', label: '발주처', required: true },
                  { id: 'site', type: 'search-select', label: '현장' },
                  { id: 'delivery-date', type: 'date', label: '납기일', required: true },
                ],
              },
              {
                id: 'product-info',
                title: '제품 정보',
                items: [
                  { id: 'product-table', type: 'editable-table', label: '제품 목록' },
                ],
              },
            ],
          },
          detail: {
            title: '수주 상세',
            sections: [
              {
                id: 'doc-buttons',
                title: '문서 버튼',
                items: [
                  { id: 'btn-order-confirm', type: 'button', label: '수주확인서', icon: 'Printer' },
                  { id: 'btn-work-order', type: 'button', label: '작업지시서', icon: 'Printer' },
                ],
              },
              {
                id: 'action-buttons',
                title: '액션 버튼',
                items: [
                  { id: 'btn-list', type: 'button', label: '목록' },
                  { id: 'btn-edit', type: 'button', label: '수정' },
                  { id: 'btn-create-wo', type: 'button', label: '작업지시 생성', action: '작업지시 등록 화면으로 이동' },
                  { id: 'btn-shipment', type: 'button', label: '출하 등록', condition: '상태=출하대기' },
                ],
              },
              {
                id: 'production-status',
                title: '생산 현황',
                items: [
                  { id: 'progress-bar', type: 'progress', label: '생산 진행률' },
                  { id: 'work-order-list', type: 'table', label: '작업지시 현황' },
                ],
              },
            ],
            stateTransitions: STATE_TRANSITIONS.order,
          },
        },
        workflow: {
          steps: ['수주 등록', '작업지시 생성', '생산 진행', '생산 완료', '출하'],
          documents: ['수주확인서', '작업지시서'],
        },
      },
      // 현장관리
      site: {
        id: 'site',
        label: '현장관리',
        description: '납품 현장 정보를 관리합니다.',
        screens: {
          list: {
            title: '현장 목록',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '현장 목록' },
                  { id: 'btn-add', type: 'button', label: '현장 등록', variant: 'primary' },
                ],
              },
              {
                id: 'report-cards',
                title: '리포트 카드',
                items: [
                  { id: 'total', type: 'card', label: '전체 현장' },
                  { id: 'active', type: 'card', label: '진행중 현장' },
                  { id: 'completed', type: 'card', label: '완료 현장' },
                  { id: 'this-month', type: 'card', label: '이번 달 신규' },
                ],
              },
              {
                id: 'search',
                title: '검색 영역',
                items: [
                  { id: 'search-input', type: 'input', label: '검색', placeholder: '현장코드, 현장명, 발주처, 주소 검색...' },
                ],
              },
              {
                id: 'table',
                title: '현장 테이블',
                items: [
                  { id: 'col-checkbox', type: 'checkbox', label: '선택' },
                  { id: 'col-code', type: 'column', label: '현장코드', pattern: 'S-###' },
                  { id: 'col-name', type: 'column', label: '현장명', sortable: true },
                  { id: 'col-customer', type: 'column', label: '발주처' },
                  { id: 'col-address', type: 'column', label: '주소' },
                  { id: 'col-manager', type: 'column', label: '현장담당자' },
                  { id: 'col-phone', type: 'column', label: '연락처' },
                  { id: 'col-status', type: 'column', label: '상태' },
                  { id: 'col-actions', type: 'row-action', label: '작업', actions: ['수정', '삭제'] },
                ],
              },
            ],
          },
          register: {
            title: '현장 등록',
            sections: [
              {
                id: 'basic-info',
                title: '기본 정보',
                items: [
                  { id: 'site-code', type: 'input', label: '현장코드', autoGenerate: true, pattern: 'S-###' },
                  { id: 'site-name', type: 'input', label: '현장명', required: true },
                  { id: 'customer', type: 'search-select', label: '발주처', required: true },
                  { id: 'manager', type: 'input', label: '현장담당자' },
                  { id: 'phone', type: 'input', label: '연락처' },
                ],
              },
              {
                id: 'address-info',
                title: '주소 정보',
                items: [
                  { id: 'postal-code', type: 'input', label: '우편번호' },
                  { id: 'address', type: 'input', label: '주소' },
                  { id: 'address-detail', type: 'input', label: '상세주소' },
                ],
              },
            ],
          },
        },
      },
      // 단가관리
      price: {
        id: 'price',
        label: '단가관리',
        description: '거래처별/품목별 판매 단가를 관리합니다.',
        screens: {
          list: {
            title: '단가 목록',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '단가 목록' },
                  { id: 'btn-add', type: 'button', label: '단가 등록', variant: 'primary' },
                ],
              },
              {
                id: 'filter-tabs',
                title: '단가유형 탭',
                items: [
                  { id: 'tab-all', type: 'tab', label: '전체' },
                  { id: 'tab-standard', type: 'tab', label: '표준단가' },
                  { id: 'tab-customer', type: 'tab', label: '거래처별단가' },
                  { id: 'tab-special', type: 'tab', label: '특별단가' },
                ],
              },
              {
                id: 'table',
                title: '단가 테이블',
                items: [
                  { id: 'col-checkbox', type: 'checkbox', label: '선택' },
                  { id: 'col-item-code', type: 'column', label: '품목코드' },
                  { id: 'col-item-name', type: 'column', label: '품목명' },
                  { id: 'col-customer', type: 'column', label: '적용거래처' },
                  { id: 'col-standard-price', type: 'column', label: '표준단가', format: 'currency' },
                  { id: 'col-apply-price', type: 'column', label: '적용단가', format: 'currency' },
                  { id: 'col-valid-from', type: 'column', label: '적용시작일' },
                  { id: 'col-valid-to', type: 'column', label: '적용종료일' },
                  { id: 'col-actions', type: 'row-action', label: '작업', actions: ['수정', '삭제'] },
                ],
              },
            ],
          },
          register: {
            title: '단가 등록',
            sections: [
              {
                id: 'price-info',
                title: '단가 정보',
                items: [
                  { id: 'item', type: 'search-select', label: '품목', required: true },
                  { id: 'price-type', type: 'select', label: '단가유형', options: ['표준단가', '거래처별단가', '특별단가'] },
                  { id: 'customer', type: 'search-select', label: '적용거래처', condition: '단가유형=거래처별단가' },
                  { id: 'price', type: 'number', label: '단가', format: 'currency', required: true },
                  { id: 'valid-from', type: 'date', label: '적용시작일' },
                  { id: 'valid-to', type: 'date', label: '적용종료일' },
                ],
              },
            ],
          },
        },
      },
    },
  },

  // ==================== 생산관리 ====================
  production: {
    id: 'production',
    label: '생산관리',
    description: '생산 현황/작업지시/작업실적/작업자화면/제품이력 관리',
    pages: {
      'production-dashboard': {
        id: 'production-dashboard',
        label: '생산 현황판',
        description: '실시간 생산 현황을 대시보드 형태로 모니터링합니다.',
        screens: {
          dashboard: {
            title: '생산 현황판',
            sections: [
              {
                id: 'summary-cards',
                title: '요약 카드',
                items: [
                  { id: 'today-target', type: 'card', label: '오늘 목표' },
                  { id: 'today-result', type: 'card', label: '오늘 실적' },
                  { id: 'achievement-rate', type: 'card', label: '달성률', format: 'percent' },
                  { id: 'defect-rate', type: 'card', label: '불량률', format: 'percent' },
                ],
              },
              {
                id: 'process-status',
                title: '공정별 현황',
                items: [
                  { id: 'screen-status', type: 'process-card', label: '스크린' },
                  { id: 'slat-status', type: 'process-card', label: '슬랫' },
                  { id: 'bending-status', type: 'process-card', label: '절곡' },
                  { id: 'forming-status', type: 'process-card', label: '포밍' },
                ],
              },
              {
                id: 'charts',
                title: '차트',
                items: [
                  { id: 'daily-chart', type: 'chart', label: '일별 생산 추이' },
                  { id: 'process-chart', type: 'chart', label: '공정별 실적' },
                ],
              },
              {
                id: 'work-order-list',
                title: '작업지시 현황',
                items: [
                  { id: 'urgent-list', type: 'list', label: '긴급 작업지시' },
                  { id: 'delayed-list', type: 'list', label: '지연 작업지시' },
                ],
              },
            ],
          },
        },
      },
      'work-order': {
        id: 'work-order',
        label: '작업지시 관리',
        description: '공정별 작업지시서를 발행하고 진행 상황을 관리합니다.',
        screens: {
          list: {
            title: '작업지시 목록',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '작업지시 목록' },
                  { id: 'btn-add', type: 'button', label: '작업지시 등록', variant: 'primary' },
                ],
              },
              {
                id: 'report-cards',
                title: '리포트 카드',
                items: [
                  { id: 'today-count', type: 'card', label: '오늘 작업' },
                  { id: 'in-progress', type: 'card', label: '진행중' },
                  { id: 'completed', type: 'card', label: '완료' },
                  { id: 'delayed', type: 'card', label: '지연' },
                ],
              },
              {
                id: 'table',
                title: '작업지시 테이블',
                items: [
                  { id: 'col-checkbox', type: 'checkbox', label: '선택' },
                  { id: 'col-wo-no', type: 'column', label: '작업지시번호', pattern: 'WO-YYMMDD-##' },
                  { id: 'col-order-no', type: 'column', label: '수주번호' },
                  { id: 'col-process', type: 'column', label: '공정' },
                  { id: 'col-product', type: 'column', label: '품목' },
                  { id: 'col-quantity', type: 'column', label: '지시수량' },
                  { id: 'col-worker', type: 'column', label: '작업자' },
                  { id: 'col-status', type: 'column', label: '상태', states: STATE_TRANSITIONS.workOrder.states },
                  { id: 'col-due-date', type: 'column', label: '완료예정일' },
                  { id: 'col-actions', type: 'row-action', label: '작업', actions: ['수정', '삭제', '실적등록'] },
                ],
              },
            ],
            stateTransitions: STATE_TRANSITIONS.workOrder,
          },
          register: {
            title: '작업지시 등록',
            sections: [
              {
                id: 'basic-info',
                title: '기본 정보',
                items: [
                  { id: 'wo-no', type: 'input', label: '작업지시번호', autoGenerate: true, pattern: 'WO-YYMMDD-##' },
                  { id: 'order-no', type: 'search-select', label: '수주번호', required: true },
                  { id: 'process', type: 'select', label: '공정', required: true, options: ['스크린', '슬랫', '절곡', '포밍'] },
                  { id: 'product', type: 'search-select', label: '품목', required: true },
                  { id: 'quantity', type: 'number', label: '지시수량', required: true },
                  { id: 'due-date', type: 'date', label: '완료예정일' },
                ],
              },
              {
                id: 'worker-info',
                title: '작업자 정보',
                items: [
                  { id: 'worker', type: 'select', label: '작업자', dataSource: 'workers' },
                  { id: 'equipment', type: 'select', label: '설비', dataSource: 'equipment' },
                ],
              },
              {
                id: 'work-detail',
                title: '작업 상세',
                items: [
                  { id: 'work-steps', type: 'checklist', label: '작업단계', dataSource: 'processSteps' },
                  { id: 'instruction', type: 'textarea', label: '작업지시사항' },
                ],
              },
            ],
          },
        },
        workflow: {
          steps: ['작업지시 발행', '작업자 배정', '작업 시작', '작업 진행', 'PQC 검사', '작업 완료'],
          documents: ['작업지시서', '작업표준서'],
          stateTransitions: STATE_TRANSITIONS.workOrder,
        },
      },
      'worker-task': {
        id: 'worker-task',
        label: '작업자 화면',
        description: '작업자가 배정된 작업을 확인하고 실적을 입력합니다.',
        screens: {
          main: {
            title: '작업자 화면',
            sections: [
              {
                id: 'worker-info',
                title: '작업자 정보',
                items: [
                  { id: 'worker-name', type: 'display', label: '작업자명' },
                  { id: 'worker-process', type: 'display', label: '담당공정' },
                ],
              },
              {
                id: 'assigned-work',
                title: '배정된 작업',
                items: [
                  { id: 'work-list', type: 'card-list', label: '오늘 작업 목록' },
                ],
              },
              {
                id: 'work-detail',
                title: '작업 상세 (선택 시)',
                items: [
                  { id: 'wo-no', type: 'display', label: '작업지시번호' },
                  { id: 'product', type: 'display', label: '품목' },
                  { id: 'target-qty', type: 'display', label: '목표수량' },
                  { id: 'good-qty', type: 'number', label: '양품수량', required: true },
                  { id: 'defect-qty', type: 'number', label: '불량수량' },
                  { id: 'btn-start', type: 'button', label: '작업 시작', variant: 'primary' },
                  { id: 'btn-complete', type: 'button', label: '작업 완료', variant: 'primary' },
                  { id: 'btn-pqc', type: 'button', label: 'PQC 요청', variant: 'outline' },
                  { id: 'btn-defect', type: 'button', label: '불량 신고', variant: 'danger' },
                ],
              },
            ],
          },
        },
      },
      // 품목관리 (생산관리 하위)
      item: {
        id: 'item',
        label: '품목관리',
        description: '생산관리에서 사용하는 품목 정보를 조회합니다.',
        screens: {
          list: {
            title: '품목 목록',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '품목 목록' },
                ],
              },
              {
                id: 'filter-tabs',
                title: '품목유형 탭',
                items: [
                  { id: 'tab-all', type: 'tab', label: '전체' },
                  { id: 'tab-product', type: 'tab', label: '제품' },
                  { id: 'tab-assembly', type: 'tab', label: '조립부품' },
                  { id: 'tab-bending', type: 'tab', label: '절곡부품' },
                ],
              },
              {
                id: 'table',
                title: '품목 테이블',
                items: [
                  { id: 'col-code', type: 'column', label: '품목코드' },
                  { id: 'col-name', type: 'column', label: '품목명' },
                  { id: 'col-type', type: 'column', label: '품목유형' },
                  { id: 'col-process', type: 'column', label: '공정' },
                  { id: 'col-spec', type: 'column', label: '규격' },
                  { id: 'col-stock', type: 'column', label: '재고수량' },
                ],
              },
            ],
          },
        },
      },
      // 작업실적
      'work-result': {
        id: 'work-result',
        label: '작업실적',
        description: '작업 실적을 조회하고 관리합니다.',
        screens: {
          list: {
            title: '작업실적 목록',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '작업실적 목록' },
                  { id: 'btn-add', type: 'button', label: '실적 등록', variant: 'primary' },
                ],
              },
              {
                id: 'report-cards',
                title: '리포트 카드',
                items: [
                  { id: 'today-result', type: 'card', label: '오늘 실적' },
                  { id: 'good-qty', type: 'card', label: '양품 수량' },
                  { id: 'defect-qty', type: 'card', label: '불량 수량' },
                  { id: 'achievement-rate', type: 'card', label: '달성률', format: 'percent' },
                ],
              },
              {
                id: 'table',
                title: '실적 테이블',
                items: [
                  { id: 'col-date', type: 'column', label: '작업일자' },
                  { id: 'col-wo-no', type: 'column', label: '작업지시번호' },
                  { id: 'col-process', type: 'column', label: '공정' },
                  { id: 'col-item', type: 'column', label: '품목' },
                  { id: 'col-target', type: 'column', label: '목표수량' },
                  { id: 'col-good', type: 'column', label: '양품수량' },
                  { id: 'col-defect', type: 'column', label: '불량수량' },
                  { id: 'col-rate', type: 'column', label: '달성률' },
                  { id: 'col-worker', type: 'column', label: '작업자' },
                ],
              },
            ],
          },
          register: {
            title: '작업실적 등록',
            sections: [
              {
                id: 'result-info',
                title: '실적 정보',
                items: [
                  { id: 'wo-no', type: 'search-select', label: '작업지시번호', required: true },
                  { id: 'work-date', type: 'date', label: '작업일자', defaultValue: 'today' },
                  { id: 'good-qty', type: 'number', label: '양품수량', required: true },
                  { id: 'defect-qty', type: 'number', label: '불량수량' },
                  { id: 'worker', type: 'select', label: '작업자' },
                  { id: 'remark', type: 'textarea', label: '비고' },
                ],
              },
            ],
          },
        },
      },
      // 제품이력추적
      traceability: {
        id: 'traceability',
        label: '제품이력추적',
        description: '제품의 생산 이력을 LOT 기준으로 추적합니다.',
        screens: {
          main: {
            title: '제품이력추적',
            sections: [
              {
                id: 'search',
                title: '검색 조건',
                items: [
                  { id: 'search-type', type: 'select', label: '검색유형', options: ['LOT번호', '수주번호', '제품코드', '현장명'] },
                  { id: 'search-value', type: 'input', label: '검색값' },
                  { id: 'btn-search', type: 'button', label: '검색', variant: 'primary' },
                ],
              },
              {
                id: 'trace-result',
                title: '이력 추적 결과',
                items: [
                  { id: 'lot-info', type: 'display-group', label: 'LOT 정보' },
                  { id: 'order-info', type: 'display-group', label: '수주 정보' },
                  { id: 'production-timeline', type: 'timeline', label: '생산 이력' },
                  { id: 'inspection-history', type: 'table', label: '검사 이력' },
                  { id: 'shipment-info', type: 'display-group', label: '출하 정보' },
                ],
              },
              {
                id: 'material-trace',
                title: '자재 추적',
                items: [
                  { id: 'material-tree', type: 'tree', label: '사용 자재 BOM' },
                  { id: 'material-lot', type: 'table', label: '자재 LOT 정보' },
                ],
              },
            ],
          },
        },
      },
    },
  },

  // ==================== 품질관리 ====================
  quality: {
    id: 'quality',
    label: '품질관리',
    description: 'IQC/PQC/FQC 검사 및 부적합품 관리',
    pages: {
      iqc: {
        id: 'iqc',
        label: '수입검사(IQC)',
        description: '자재 입고 시 수입검사를 수행합니다.',
        screens: {
          list: {
            title: '수입검사(IQC) 목록',
            sections: [
              {
                id: 'table',
                title: '검사 목록',
                items: [
                  { id: 'col-iqc-no', type: 'column', label: '검사번호', pattern: 'IQC-YYMMDD-##' },
                  { id: 'col-inbound-no', type: 'column', label: '입고번호' },
                  { id: 'col-item', type: 'column', label: '품목' },
                  { id: 'col-quantity', type: 'column', label: '검사수량' },
                  { id: 'col-result', type: 'column', label: '판정', states: ['대기', '합격', '조건부합격', '불합격'] },
                  { id: 'col-date', type: 'column', label: '검사일' },
                ],
              },
            ],
            stateTransitions: STATE_TRANSITIONS.inspection,
          },
        },
      },
      pqc: {
        id: 'pqc',
        label: '중간검사(PQC)',
        description: '생산 중 공정 품질검사를 수행합니다.',
        screens: {
          list: {
            title: '중간검사(PQC) 목록',
            sections: [
              {
                id: 'table',
                title: '검사 목록',
                items: [
                  { id: 'col-pqc-no', type: 'column', label: '검사번호', pattern: 'PQC-YYMMDD-##' },
                  { id: 'col-wo-no', type: 'column', label: '작업지시번호' },
                  { id: 'col-process', type: 'column', label: '공정' },
                  { id: 'col-item', type: 'column', label: '품목' },
                  { id: 'col-result', type: 'column', label: '판정', states: ['대기', '합격', '불합격'] },
                ],
              },
            ],
            stateTransitions: STATE_TRANSITIONS.inspection,
          },
        },
      },
      fqc: {
        id: 'fqc',
        label: '제품검사(FQC)',
        description: '출하 전 최종 제품검사를 수행합니다.',
        screens: {
          list: {
            title: '제품검사(FQC) 목록',
            sections: [
              {
                id: 'table',
                title: '검사 목록',
                items: [
                  { id: 'col-fqc-no', type: 'column', label: '검사번호', pattern: 'FQC-YYMMDD-##' },
                  { id: 'col-order-no', type: 'column', label: '수주번호' },
                  { id: 'col-item', type: 'column', label: '품목' },
                  { id: 'col-result', type: 'column', label: '판정', states: ['대기', '합격', '보류', '불합격'] },
                ],
              },
            ],
            stateTransitions: STATE_TRANSITIONS.inspection,
          },
        },
      },
      defect: {
        id: 'defect',
        label: '부적합품관리',
        description: '불량 발생 건을 등록하고 처리합니다.',
        screens: {
          list: {
            title: '부적합품 목록',
            sections: [
              {
                id: 'table',
                title: '부적합품 목록',
                items: [
                  { id: 'col-ncr-no', type: 'column', label: 'NCR번호', pattern: 'NCR-YYMMDD-##' },
                  { id: 'col-source', type: 'column', label: '발생단계' },
                  { id: 'col-item', type: 'column', label: '품목' },
                  { id: 'col-defect-type', type: 'column', label: '불량유형' },
                  { id: 'col-quantity', type: 'column', label: '불량수량' },
                  { id: 'col-disposition', type: 'column', label: '처리', states: ['대기', '재작업', '특채', '폐기'] },
                ],
              },
            ],
          },
        },
      },
    },
  },

  // ==================== 자재관리 ====================
  inventory: {
    id: 'inventory',
    label: '자재관리',
    description: '재고현황 및 입고 관리',
    pages: {
      // 재고현황
      stock: {
        id: 'stock',
        label: '재고현황',
        description: '품목별 재고 현황을 조회합니다.',
        screens: {
          list: {
            title: '재고현황 목록',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '재고현황 목록' },
                ],
              },
              {
                id: 'report-cards',
                title: '리포트 카드',
                items: [
                  { id: 'total-items', type: 'card', label: '총 품목 수' },
                  { id: 'low-stock', type: 'card', label: '재고 부족' },
                  { id: 'this-month-in', type: 'card', label: '이번 달 입고' },
                  { id: 'this-month-out', type: 'card', label: '이번 달 출고' },
                ],
              },
              {
                id: 'search',
                title: '검색 영역',
                items: [
                  { id: 'search-input', type: 'input', label: '검색', placeholder: '품목코드, 품목명, 창고, 위치 검색...' },
                  { id: 'filter-type', type: 'select', label: '품목유형', options: ['전체', '원자재', '부자재', '완제품'] },
                  { id: 'filter-warehouse', type: 'select', label: '창고', options: ['전체', '자재창고', '제품창고', '불량창고'] },
                ],
              },
              {
                id: 'table',
                title: '재고 테이블',
                items: [
                  { id: 'col-item-code', type: 'column', label: '품목코드' },
                  { id: 'col-item-name', type: 'column', label: '품목명' },
                  { id: 'col-spec', type: 'column', label: '규격' },
                  { id: 'col-warehouse', type: 'column', label: '창고' },
                  { id: 'col-location', type: 'column', label: '위치' },
                  { id: 'col-stock-qty', type: 'column', label: '재고수량' },
                  { id: 'col-safety-stock', type: 'column', label: '안전재고' },
                  { id: 'col-unit', type: 'column', label: '단위' },
                  { id: 'col-status', type: 'column', label: '상태', states: ['정상', '부족', '과다'] },
                ],
              },
            ],
          },
        },
      },
      // 입고관리
      inbound: {
        id: 'inbound',
        label: '입고관리',
        description: '자재 입고를 등록하고 관리합니다.',
        screens: {
          list: {
            title: '입고 목록',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '입고 목록' },
                  { id: 'btn-add', type: 'button', label: '입고 등록', variant: 'primary' },
                ],
              },
              {
                id: 'report-cards',
                title: '리포트 카드',
                items: [
                  { id: 'today-inbound', type: 'card', label: '오늘 입고' },
                  { id: 'pending-iqc', type: 'card', label: 'IQC 대기' },
                  { id: 'passed-iqc', type: 'card', label: 'IQC 합격' },
                  { id: 'this-month', type: 'card', label: '이번 달 입고' },
                ],
              },
              {
                id: 'table',
                title: '입고 테이블',
                items: [
                  { id: 'col-checkbox', type: 'checkbox', label: '선택' },
                  { id: 'col-inbound-no', type: 'column', label: '입고번호' },
                  { id: 'col-date', type: 'column', label: '입고일자' },
                  { id: 'col-supplier', type: 'column', label: '공급업체' },
                  { id: 'col-item', type: 'column', label: '품목' },
                  { id: 'col-qty', type: 'column', label: '입고수량' },
                  { id: 'col-lot', type: 'column', label: 'LOT번호' },
                  { id: 'col-iqc-status', type: 'column', label: 'IQC상태', states: ['대기', '합격', '불합격'] },
                  { id: 'col-actions', type: 'row-action', label: '작업', actions: ['수정', '삭제', 'IQC요청'] },
                ],
              },
            ],
          },
          register: {
            title: '입고 등록',
            sections: [
              {
                id: 'basic-info',
                title: '기본 정보',
                items: [
                  { id: 'inbound-date', type: 'date', label: '입고일자', defaultValue: 'today' },
                  { id: 'supplier', type: 'search-select', label: '공급업체', required: true },
                  { id: 'po-no', type: 'search-select', label: '발주번호' },
                ],
              },
              {
                id: 'item-info',
                title: '품목 정보',
                items: [
                  { id: 'item-table', type: 'editable-table', label: '입고 품목', columns: ['품목코드', '품목명', '수량', 'LOT번호', '창고', '위치'] },
                  { id: 'btn-add-item', type: 'button', label: '품목 추가', variant: 'outline' },
                ],
              },
            ],
          },
        },
        workflow: {
          steps: ['입고 등록', 'IQC 검사', '검사 합격', '재고 반영'],
          dataFlow: {
            input: ['발주정보', '품목정보', '공급업체'],
            output: ['입고번호', '재고수량', 'IQC 요청'],
            linkedTo: ['수입검사(IQC)', '재고현황'],
          },
        },
      },
    },
  },

  // ==================== 출고관리 ====================
  outbound: {
    id: 'outbound',
    label: '출고관리',
    description: '출하 처리 및 배송 관리',
    pages: {
      shipment: {
        id: 'shipment',
        label: '출하관리',
        description: '생산 완료 제품의 출하를 관리합니다.',
        screens: {
          list: {
            title: '출하 목록',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '출하 목록' },
                  { id: 'btn-add', type: 'button', label: '출하 등록', variant: 'primary' },
                ],
              },
              {
                id: 'report-cards',
                title: '리포트 카드',
                items: [
                  { id: 'today-shipment', type: 'card', label: '오늘 출하' },
                  { id: 'pending', type: 'card', label: '출고대기' },
                  { id: 'in-delivery', type: 'card', label: '배송중' },
                  { id: 'completed', type: 'card', label: '배송완료' },
                ],
              },
              {
                id: 'table',
                title: '출하 테이블',
                items: [
                  { id: 'col-checkbox', type: 'checkbox', label: '선택' },
                  { id: 'col-shipment-no', type: 'column', label: '출하번호', pattern: 'SL-YYMMDD-##' },
                  { id: 'col-order-no', type: 'column', label: '수주번호' },
                  { id: 'col-customer', type: 'column', label: '거래처' },
                  { id: 'col-site', type: 'column', label: '현장' },
                  { id: 'col-credit-grade', type: 'column', label: '거래처등급' },
                  { id: 'col-shipment-date', type: 'column', label: '출하일' },
                  { id: 'col-status', type: 'column', label: '상태', states: STATE_TRANSITIONS.shipment.states },
                  { id: 'col-dispatch', type: 'column', label: '배차' },
                  { id: 'col-actions', type: 'row-action', label: '작업', actions: ['수정', '삭제', '배차'] },
                ],
              },
            ],
            stateTransitions: STATE_TRANSITIONS.shipment,
          },
          register: {
            title: '출하 등록',
            sections: [
              {
                id: 'basic-info',
                title: '기본 정보',
                items: [
                  { id: 'shipment-no', type: 'input', label: '출하번호', autoGenerate: true, pattern: 'SL-YYMMDD-##' },
                  { id: 'order-no', type: 'search-select', label: '수주번호', required: true, filter: "status IN ('생산완료', '출하대기')" },
                  { id: 'shipment-date', type: 'date', label: '출하일' },
                  { id: 'person-in-charge', type: 'input', label: '담당자' },
                  { id: 'arrival-time', type: 'datetime', label: '입차/수령시간' },
                ],
              },
            ],
          },
          detail: {
            title: '출하 상세',
            sections: [
              {
                id: 'credit-check',
                title: '출하 조건 및 배차 설정',
                description: '거래처 신용등급에 따라 출하 조건이 달라집니다',
                items: [
                  { id: 'credit-grade', type: 'display', label: '거래처등급', description: 'A: 무조건 출하, B: 입금확인, C: 입금+세금계산서' },
                  { id: 'payment-confirmed', type: 'toggle', label: '입금확인', condition: '등급=B,C' },
                  { id: 'tax-invoice-issued', type: 'toggle', label: '세금계산서', condition: '등급=C' },
                  { id: 'can-ship', type: 'display', label: '출하가능여부', calculated: true },
                  { id: 'dispatch-type', type: 'select', label: '배차유형', options: ['직접배차', '상차', '택배', '화물', '직접배송'] },
                  { id: 'vehicle-no', type: 'input', label: '차량번호', condition: '배차유형=직접배차,상차' },
                  { id: 'driver', type: 'input', label: '기사명', condition: '배차유형=직접배차,상차' },
                ],
              },
              {
                id: 'loading-check',
                title: '상차 체크',
                items: [
                  { id: 'loading-checklist', type: 'checklist', label: '상차 품목 확인' },
                  { id: 'btn-confirm-loading', type: 'button', label: '상차 완료', variant: 'primary' },
                ],
              },
            ],
            stateTransitions: STATE_TRANSITIONS.shipment,
          },
        },
        workflow: {
          steps: ['출하 등록', '출하조건 확인', '배차 완료', '상차 완료', '배송중', '배송완료'],
          documents: ['출고증', '거래명세서'],
          creditGradeLogic: {
            'A': { canShip: true, conditions: [] },
            'B': { canShip: 'paymentConfirmed', conditions: ['입금확인'] },
            'C': { canShip: 'paymentConfirmed && taxInvoiceIssued', conditions: ['입금확인', '세금계산서 발행'] },
          },
        },
      },
    },
  },

  // ==================== 회계관리 ====================
  accounting: {
    id: 'accounting',
    label: '회계관리',
    description: '매출/매입/수금/원가 관리',
    pages: {
      'sales-account': {
        id: 'sales-account',
        label: '매출관리',
        description: '출하 완료 건의 매출 처리 및 세금계산서 발행',
        screens: {
          list: {
            title: '매출 목록',
            sections: [
              {
                id: 'table',
                title: '매출 테이블',
                items: [
                  { id: 'col-shipment-no', type: 'column', label: '출하번호' },
                  { id: 'col-customer', type: 'column', label: '거래처' },
                  { id: 'col-amount', type: 'column', label: '매출금액' },
                  { id: 'col-statement', type: 'column', label: '거래명세서', states: ['미발행', '발행완료'] },
                  { id: 'col-tax-invoice', type: 'column', label: '세금계산서', states: ['미발행', '발행완료', '전송완료'] },
                ],
              },
            ],
          },
        },
        workflow: {
          steps: ['출하완료', '거래명세서 발행', '세금계산서 발행', '국세청 전송'],
          documents: ['거래명세서', '세금계산서'],
        },
      },
      collection: {
        id: 'collection',
        label: '수금관리',
        description: '거래처별 수금 및 미수금 관리',
        screens: {
          list: {
            title: '수금 목록',
            sections: [
              {
                id: 'table',
                title: '수금 테이블',
                items: [
                  { id: 'col-customer', type: 'column', label: '거래처' },
                  { id: 'col-total-receivable', type: 'column', label: '채권총액' },
                  { id: 'col-collected', type: 'column', label: '수금액' },
                  { id: 'col-outstanding', type: 'column', label: '미수금' },
                ],
              },
            ],
          },
        },
      },
      'cost-analysis': {
        id: 'cost-analysis',
        label: '원가관리',
        description: '수주별 원가 집계 및 분석',
        screens: {
          list: {
            title: '원가 목록',
            sections: [
              {
                id: 'table',
                title: '원가 테이블',
                items: [
                  { id: 'col-order-no', type: 'column', label: '수주번호' },
                  { id: 'col-material-cost', type: 'column', label: '자재비' },
                  { id: 'col-labor-cost', type: 'column', label: '노무비' },
                  { id: 'col-overhead', type: 'column', label: '경비' },
                  { id: 'col-total-cost', type: 'column', label: '총원가' },
                  { id: 'col-profit', type: 'column', label: '이익률' },
                ],
              },
            ],
          },
        },
      },
    },
  },

  // ==================== 시스템관리 ====================
  system: {
    id: 'system',
    label: '시스템',
    description: '시스템 설정 및 관리 기능',
    pages: {
      // 업무 플로우차트
      'process-flowchart': {
        id: 'process-flowchart',
        label: '업무 플로우차트',
        description: '전체 업무 프로세스를 시각화합니다.',
        screens: {
          main: {
            title: '업무 플로우차트',
            sections: [
              {
                id: 'flowchart',
                title: '플로우차트 영역',
                items: [
                  { id: 'flow-diagram', type: 'diagram', label: '업무 흐름도' },
                  { id: 'stage-1', type: 'flow-node', label: '1. 견적' },
                  { id: 'stage-2', type: 'flow-node', label: '2. 수주' },
                  { id: 'stage-3', type: 'flow-node', label: '3. 작업지시' },
                  { id: 'stage-4', type: 'flow-node', label: '4. 생산' },
                  { id: 'stage-5', type: 'flow-node', label: '5. 중간검사(PQC)' },
                  { id: 'stage-6', type: 'flow-node', label: '6. 최종검사(FQC)' },
                  { id: 'stage-7', type: 'flow-node', label: '7. 출하' },
                  { id: 'stage-8', type: 'flow-node', label: '8. 매출/정산' },
                ],
              },
            ],
          },
        },
      },
      // 사용자관리
      users: {
        id: 'users',
        label: '사용자관리',
        description: '시스템 사용자 계정을 관리합니다.',
        screens: {
          list: {
            title: '사용자 목록',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '사용자 목록' },
                  { id: 'btn-add', type: 'button', label: '사용자 등록', variant: 'primary' },
                ],
              },
              {
                id: 'table',
                title: '사용자 테이블',
                items: [
                  { id: 'col-checkbox', type: 'checkbox', label: '선택' },
                  { id: 'col-id', type: 'column', label: '아이디' },
                  { id: 'col-name', type: 'column', label: '이름' },
                  { id: 'col-dept', type: 'column', label: '부서' },
                  { id: 'col-role', type: 'column', label: '권한' },
                  { id: 'col-email', type: 'column', label: '이메일' },
                  { id: 'col-status', type: 'column', label: '상태', states: ['활성', '비활성'] },
                  { id: 'col-actions', type: 'row-action', label: '작업', actions: ['수정', '삭제', '비밀번호초기화'] },
                ],
              },
            ],
          },
          register: {
            title: '사용자 등록',
            sections: [
              {
                id: 'basic-info',
                title: '기본 정보',
                items: [
                  { id: 'user-id', type: 'input', label: '아이디', required: true },
                  { id: 'user-name', type: 'input', label: '이름', required: true },
                  { id: 'password', type: 'password', label: '비밀번호', required: true },
                  { id: 'dept', type: 'select', label: '부서' },
                  { id: 'role', type: 'select', label: '권한', options: ['관리자', '영업', '생산', '품질', '자재', '회계'] },
                  { id: 'email', type: 'input', label: '이메일' },
                  { id: 'phone', type: 'input', label: '연락처' },
                ],
              },
            ],
          },
        },
      },
      // 권한관리
      roles: {
        id: 'roles',
        label: '권한관리',
        description: '사용자 권한 및 메뉴 접근 권한을 관리합니다.',
        screens: {
          list: {
            title: '권한 목록',
            sections: [
              {
                id: 'header',
                title: '헤더 영역',
                items: [
                  { id: 'title', type: 'text', label: '페이지 제목', value: '권한 목록' },
                  { id: 'btn-add', type: 'button', label: '권한 등록', variant: 'primary' },
                ],
              },
              {
                id: 'table',
                title: '권한 테이블',
                items: [
                  { id: 'col-role-name', type: 'column', label: '권한명' },
                  { id: 'col-description', type: 'column', label: '설명' },
                  { id: 'col-users', type: 'column', label: '사용자수' },
                  { id: 'col-menus', type: 'column', label: '접근메뉴' },
                  { id: 'col-actions', type: 'row-action', label: '작업', actions: ['수정', '삭제'] },
                ],
              },
            ],
          },
          register: {
            title: '권한 등록',
            sections: [
              {
                id: 'role-info',
                title: '권한 정보',
                items: [
                  { id: 'role-name', type: 'input', label: '권한명', required: true },
                  { id: 'description', type: 'textarea', label: '설명' },
                ],
              },
              {
                id: 'menu-access',
                title: '메뉴 접근 권한',
                items: [
                  { id: 'menu-tree', type: 'checkbox-tree', label: '메뉴 접근', description: '접근 가능한 메뉴를 선택하세요' },
                ],
              },
            ],
          },
        },
      },
      // 시스템설정
      settings: {
        id: 'settings',
        label: '시스템설정',
        description: '시스템 기본 설정을 관리합니다.',
        screens: {
          main: {
            title: '시스템설정',
            sections: [
              {
                id: 'company-info',
                title: '회사 정보',
                items: [
                  { id: 'company-name', type: 'input', label: '회사명' },
                  { id: 'biz-no', type: 'input', label: '사업자번호' },
                  { id: 'ceo', type: 'input', label: '대표자' },
                  { id: 'address', type: 'input', label: '주소' },
                  { id: 'phone', type: 'input', label: '대표번호' },
                  { id: 'fax', type: 'input', label: '팩스' },
                ],
              },
              {
                id: 'system-config',
                title: '시스템 설정',
                items: [
                  { id: 'date-format', type: 'select', label: '날짜형식', options: ['YYYY-MM-DD', 'DD/MM/YYYY', 'MM/DD/YYYY'] },
                  { id: 'currency', type: 'select', label: '통화', options: ['KRW', 'USD', 'EUR'] },
                  { id: 'tax-rate', type: 'number', label: 'VAT 세율', unit: '%' },
                ],
              },
            ],
          },
        },
      },
      // 공통 UX
      'common-ux': {
        id: 'common-ux',
        label: '공통 UX',
        description: '공통 UX 컴포넌트 및 가이드라인',
        screens: {
          main: {
            title: '공통 UX 가이드',
            sections: [
              {
                id: 'components',
                title: '공통 컴포넌트',
                items: [
                  { id: 'buttons', type: 'component-demo', label: '버튼' },
                  { id: 'inputs', type: 'component-demo', label: '입력필드' },
                  { id: 'tables', type: 'component-demo', label: '테이블' },
                  { id: 'modals', type: 'component-demo', label: '모달' },
                  { id: 'cards', type: 'component-demo', label: '카드' },
                ],
              },
              {
                id: 'page-templates',
                title: '페이지 템플릿',
                items: [
                  { id: 'list-template', type: 'template', label: '목록 페이지' },
                  { id: 'register-template', type: 'template', label: '등록 페이지' },
                  { id: 'detail-template', type: 'template', label: '상세 페이지' },
                ],
              },
            ],
          },
        },
      },
      // 정책서
      'policy-guide': {
        id: 'policy-guide',
        label: '정책서',
        description: '시스템 정책 및 가이드라인 문서',
        screens: {
          main: {
            title: '정책서',
            sections: [
              {
                id: 'policies',
                title: '정책 문서',
                items: [
                  { id: 'ux-policy', type: 'document', label: 'UX 스타일 가이드' },
                  { id: 'numbering-policy', type: 'document', label: '채번 규칙 정책' },
                  { id: 'workflow-policy', type: 'document', label: '업무 프로세스 정책' },
                  { id: 'credit-policy', type: 'document', label: '신용등급 정책' },
                ],
              },
            ],
          },
        },
      },
      // 통합테스트
      'integrated-test': {
        id: 'integrated-test',
        label: '통합테스트',
        description: '시스템 통합 테스트 환경',
        screens: {
          main: {
            title: '통합테스트',
            sections: [
              {
                id: 'test-scenarios',
                title: '테스트 시나리오',
                items: [
                  { id: 'scenario-1', type: 'test', label: '견적→수주 전환 테스트' },
                  { id: 'scenario-2', type: 'test', label: '수주→작업지시 생성 테스트' },
                  { id: 'scenario-3', type: 'test', label: '생산→검사 연동 테스트' },
                  { id: 'scenario-4', type: 'test', label: '출하→매출 정산 테스트' },
                  { id: 'scenario-5', type: 'test', label: '전체 업무 흐름 테스트' },
                ],
              },
            ],
          },
        },
      },
    },
  },
};

// 전체 워크플로우 정의 (견적 → 출하 → 매출)
export const FULL_WORKFLOW = {
  name: '전체 업무 프로세스',
  description: '견적 요청부터 매출 정산까지의 전체 업무 흐름',
  stages: [
    {
      id: 'quote',
      name: '1. 견적',
      description: '고객 요청에 따른 견적서 작성 및 발송',
      menu: 'sales',
      page: 'quote',
      screens: ['견적 목록', '견적 등록', '견적 상세'],
      outputs: ['견적서', '산출내역서', '발주서'],
      dataConnections: ['품목마스터', '거래처정보', '현장정보', '견적수식'],
      states: ['최초작성', '고객발송', '고객확인중', '수정요청', '확정', '수주전환', '취소'],
    },
    {
      id: 'order',
      name: '2. 수주',
      description: '확정된 견적을 수주로 전환하여 생산 준비',
      menu: 'sales',
      page: 'order',
      screens: ['수주 목록', '수주 등록', '수주 상세'],
      outputs: ['수주확인서'],
      dataConnections: ['견적정보', '고객정보', '품목정보', '납기정보'],
      states: ['수주등록', '생산준비', '생산진행', '생산완료', '출하대기', '출하완료', '취소'],
    },
    {
      id: 'work-order',
      name: '3. 작업지시',
      description: '수주 기반 공정별 작업지시서 발행',
      menu: 'production',
      page: 'work-order',
      screens: ['작업지시 목록', '작업지시 등록', '작업지시 상세'],
      outputs: ['작업지시서(스크린)', '작업지시서(슬랫)', '작업지시서(절곡)'],
      dataConnections: ['수주정보', 'BOM', '공정마스터', '설비정보'],
      states: ['지시대기', '작업배정', '작업중', '검사대기', '검사완료', '완료', '보류'],
    },
    {
      id: 'production',
      name: '4. 생산',
      description: '작업지시에 따른 실제 생산 작업 수행',
      menu: 'production',
      page: 'worker-task',
      screens: ['작업일지 목록', '작업일지 등록', '터치패드 화면'],
      outputs: ['작업일지'],
      dataConnections: ['작업지시정보', '작업자정보', '설비정보', '자재정보'],
      states: ['대기', '작업중', '완료', '중단'],
    },
    {
      id: 'pqc',
      name: '5. 중간검사 (PQC)',
      description: '공정 완료 후 중간 품질 검사',
      menu: 'quality',
      page: 'pqc',
      screens: ['중간검사 목록', '중간검사 등록', '중간검사 상세'],
      outputs: ['중간검사성적서'],
      dataConnections: ['작업지시정보', '검사기준', '불량유형'],
      states: ['검사대기', '검사중', '합격', '조건부합격', '불합격', '재검사'],
    },
    {
      id: 'fqc',
      name: '6. 최종검사 (FQC)',
      description: '완제품 최종 출하 전 품질 검사',
      menu: 'quality',
      page: 'fqc',
      screens: ['제품검사 목록', '제품검사 등록', '제품검사 상세'],
      outputs: ['제품검사성적서'],
      dataConnections: ['수주정보', '검사기준', '합격판정기준'],
      states: ['검사대기', '검사중', '합격', '조건부합격', '불합격', '재검사'],
    },
    {
      id: 'shipment',
      name: '7. 출하',
      description: '검사 합격품 출하 및 배송 관리',
      menu: 'outbound',
      page: 'shipment',
      screens: ['출하 목록', '출하 등록', '출하 상세'],
      outputs: ['출고증', '거래명세서'],
      dataConnections: ['수주정보', 'FQC합격정보', '거래처정보', '신용등급'],
      states: ['출고대기', '출고준비', '상차대기', '배송중', '배송완료', '반품'],
      creditGradeRule: {
        A: '무조건 출하 가능',
        B: '입금확인 후 출하',
        C: '입금확인 + 세금계산서 발행 후 출하',
      },
    },
    {
      id: 'sales',
      name: '8. 매출/정산',
      description: '출하 완료 후 매출 처리 및 수금 관리',
      menu: 'accounting',
      page: 'sales-account',
      screens: ['매출 목록', '수금 목록', '미수금 현황'],
      outputs: ['거래명세서', '세금계산서'],
      dataConnections: ['출하정보', '거래처정보', '수금정보'],
      states: ['매출등록', '청구완료', '수금완료', '미수금'],
    },
  ],
  dataConnections: [
    { from: 'quote', to: 'order', data: '견적정보(고객, 품목, 단가, 수량)', trigger: '수주전환 버튼' },
    { from: 'order', to: 'work-order', data: '수주정보(품목, 수량, 납기)', trigger: '작업지시 생성 버튼' },
    { from: 'work-order', to: 'production', data: '작업지시(공정, 품목, 수량)', trigger: '작업 시작' },
    { from: 'production', to: 'pqc', data: '작업실적(생산품)', trigger: '작업 완료 → PQC 자동생성' },
    { from: 'pqc', to: 'fqc', data: '합격품', trigger: '전 공정 완료' },
    { from: 'fqc', to: 'shipment', data: 'FQC합격품', trigger: 'FQC 합격 판정' },
    { from: 'shipment', to: 'sales', data: '매출정보(거래명세서, 세금계산서)', trigger: '배송 완료' },
  ],
  masterDataFlow: [
    { source: '품목기준관리', targets: ['견적', '수주', '작업지시', '검사', '재고'], data: '품목마스터, BOM' },
    { source: '공정기준관리', targets: ['작업지시', '생산', 'PQC'], data: '공정순서, 작업단계, 표준시간' },
    { source: '품질기준관리', targets: ['IQC', 'PQC', 'FQC'], data: '검사항목, 기준값, 판정기준' },
    { source: '거래처관리', targets: ['견적', '수주', '출하', '수금'], data: '거래처정보, 신용등급' },
    { source: '현장관리', targets: ['견적', '수주', '출하'], data: '현장정보, 납품주소' },
  ],
};

export default {
  STATE_TRANSITIONS,
  COMPREHENSIVE_MENU_FEATURES,
  FULL_WORKFLOW,
};
