// 품질기준관리 Config - KS규격 기반 상세 검사항목 스키마
// 검사기준(IQC/PQC/FQC), 검사 템플릿, KS규격, 샘플링 기준 관리
const inspectionMasterConfig = {
  id: 'quality',
  title: '품질기준관리',
  description: '입고검사(IQC), 중간검사(PQC), 제품검사(FQC) 기준 및 템플릿을 관리합니다',
  icon: 'ShieldCheck',
  tabs: [
    { id: 'hierarchy', label: '검사기준', icon: 'GitBranch' },
    { id: 'section', label: '섹션', icon: 'Layers' },
    { id: 'field', label: '검사항목', icon: 'ClipboardList' },
    { id: 'attribute', label: '속성', icon: 'Settings' },
    { id: 'templates', label: '검사템플릿', icon: 'FileText' },
    { id: 'ks-standards', label: 'KS규격', icon: 'ShieldCheck' },
    { id: 'sampling', label: '샘플링기준', icon: 'BarChart3' },
  ],
  entityTypes: [
    { id: 1, code: 'IQC', name: '수입검사', description: '자재 입고 시 검사 (로트별)', sortOrder: 1, isActive: true, trigger: '자재입고', approvalLine: 'APR-2LINE' },
    { id: 2, code: 'PQC', name: '중간검사', description: '생산 중 품질검사 (공정별)', sortOrder: 2, isActive: true, trigger: '작업자검사요청', approvalLine: 'APR-3LINE' },
    { id: 3, code: 'FQC', name: '제품검사', description: '출하 후 고객 요청 검사', sortOrder: 3, isActive: true, trigger: '고객요청', approvalLine: 'APR-3LINE' },
  ],

  // ★ 검사 프로세스 흐름 정의
  inspectionFlow: {
    // 1단계: 입고검사 (IQC)
    IQC: {
      name: '수입검사',
      trigger: '자재 입고 시',
      performer: '품질팀',
      inputFrom: '입고관리',
      outputTo: '재고등록',
      documentCode: 'IQC',
      samplingRule: 'n=3, c=0',
      items: {
        '철판(EGI)': ['겉모양', '두께', '너비', '길이', '인장강도', '연신율', '아연부착량'],
        '스크린원단': ['겉모양', '두께', '폭', '색상'],
        '슬랫코일': ['겉모양', '두께', '폭', '도금상태'],
      },
      resultAction: {
        pass: '입고완료 → 재고등록',
        fail: '반품처리 / NCR 발행',
      },
    },
    // 2단계: 중간검사 (PQC)
    PQC: {
      name: '중간검사',
      trigger: '작업자 검사요청 버튼',
      performer: '품질팀',
      inputFrom: '생산관리(작업지시)',
      outputTo: '다음공정 진행 허용',
      documentCode: 'PQC',
      samplingRule: '전수검사 or 로트단위',
      processTypes: {
        '스크린': {
          checkPoint: '앤드락작업 후',
          items: [
            { name: '가공상태', method: '육안검사', standard: '사용상 해로운 결함 없을 것' },
            { name: '재봉상태', method: '육안검사', standard: '내화실에 의해 견고하게 접합' },
            { name: '조립상태', method: '육안검사', standard: '앤드락이 견고하게 조립' },
            { name: '길이', method: '체크검사', standard: '도면치수 ± 4', unit: 'mm', measurePoints: 5 },
            { name: '높이', method: '체크검사', standard: '도면치수 + 제한없음 - 40', unit: 'mm', measurePoints: 5 },
            { name: '간격', method: 'GONO게이지', standard: '400 이하', unit: 'mm', measurePoints: 5 },
          ],
        },
        '절곡': {
          checkPoint: '절곡 후',
          items: [
            { name: '절곡상태', method: '육안검사', standard: '사용상 해로운 결함 없을 것' },
            { name: '길이', method: '체크검사', standard: '도면치수 ± 4', unit: 'mm', measurePoints: 5 },
            { name: '너비', method: '체크검사', standard: '도면치수 기준', unit: 'mm', measurePoints: 5 },
            { name: '간격(POINT)', method: '체크검사', standard: '도면치수 ± 2', unit: 'mm', measurePoints: 5 },
          ],
          partTypes: ['가이드레일', '케이스', '하단마감재', '하단 L-BAR', '연기차단재'],
        },
        '슬랫': {
          checkPoint: '코일절단 후',
          items: [
            { name: '절단상태', method: '육안검사', standard: '사용상 해로운 결함 없을 것' },
            { name: '길이', method: '체크검사', standard: '도면치수 ± 3', unit: 'mm', measurePoints: 5 },
            { name: '피치', method: '체크검사', standard: '82mm ± 1', unit: 'mm', measurePoints: 5 },
          ],
        },
      },
      resultAction: {
        pass: '다음 공정(포장) 진행',
        fail: '재작업 / NCR 발행',
      },
    },
    // 3단계: 제품검사 (FQC) - 고객 요청
    FQC: {
      name: '제품검사',
      trigger: '출하 후 고객 요청',
      performer: '품질팀',
      inputFrom: '출하관리 / 고객요청',
      outputTo: '검사성적서 발행',
      documentCode: 'FQC',
      samplingRule: '전수검사',
      items: [
        // 겉모양 검사
        { category: '겉모양', name: '가공상태', method: '육안검사', standard: '사용상 해로운 결함 없을 것', cycle: '전수검사' },
        { category: '겉모양', name: '재봉상태', method: '육안검사', standard: '내화실에 의해 견고하게 접합', cycle: '전수검사' },
        { category: '겉모양', name: '조립상태', method: '육안검사', standard: '앤드락이 견고하게 조립', cycle: '전수검사' },
        { category: '겉모양', name: '연기차단재', method: '육안검사', standard: '케이스 W80, 가이드레일 W50 설치', cycle: '전수검사' },
        { category: '겉모양', name: '하단마감재', method: '육안검사', standard: '내부 무게평철 설치', cycle: '전수검사' },
        // 모터/재질
        { category: '모터', name: '모터', method: '육안검사', standard: '인정제품과 동일사양', cycle: '전수검사' },
        { category: '재질', name: '재질', method: '육안검사', standard: 'WY-SC780 인쇄상태 확인', cycle: '전수검사' },
        // 치수 검사 (오픈사이즈)
        { category: '치수', name: '길이', method: '체크검사', standard: '발주치수 ± 30mm', cycle: '전수검사', hasMeasurement: true },
        { category: '치수', name: '높이', method: '체크검사', standard: '발주치수 ± 30mm', cycle: '전수검사', hasMeasurement: true },
        { category: '치수', name: '가이드레일 홈간격', method: '체크검사', standard: '10 ± 5mm', cycle: '전수검사', hasMeasurement: true },
        { category: '치수', name: '하단마감재간격', method: '체크검사', standard: '틈새 25mm 이내', cycle: '전수검사', hasMeasurement: true },
        // 작동테스트
        { category: '작동테스트', name: '개폐성능', method: '실동작시험', standard: '일부 및 완전폐쇄 확인', cycle: '전수검사' },
        // 공인시험 (외부 시험기관)
        { category: '내화시험', name: '비차열/차열/열성', method: '공인시험기관', standard: '시험성적서 확인', cycle: '1회/5년', isExternal: true },
        { category: '차연시험', name: '공기누설량', method: '공인시험기관', standard: '0.9㎥/min·㎡ 이하', cycle: '1회/5년', isExternal: true },
        { category: '개폐시험', name: '개폐성능', method: '공인시험기관', standard: '시험성적서 확인', cycle: '1회/5년', isExternal: true },
        { category: '내충격시험', name: '내충격', method: '공인시험기관', standard: '파괴/박리 없음', cycle: '1회/5년', isExternal: true },
      ],
      resultAction: {
        pass: '검사성적서 발행 → 고객 전달',
        fail: '재검사 / 보완 조치',
      },
    },
  },
  categories: [
    { id: 1, code: 'DIM', name: '치수검사', parentId: null, level: 1, path: '/1', sortOrder: 1 },
    { id: 2, code: 'DIM-LEN', name: '길이', parentId: 1, level: 2, path: '/1/2', sortOrder: 1 },
    { id: 3, code: 'DIM-WID', name: '폭', parentId: 1, level: 2, path: '/1/3', sortOrder: 2 },
    { id: 4, code: 'DIM-THK', name: '두께', parentId: 1, level: 2, path: '/1/4', sortOrder: 3 },
    { id: 5, code: 'VIS', name: '외관검사', parentId: null, level: 1, path: '/5', sortOrder: 2 },
    { id: 6, code: 'VIS-SCR', name: '스크래치', parentId: 5, level: 2, path: '/5/6', sortOrder: 1 },
    { id: 7, code: 'VIS-COL', name: '색상', parentId: 5, level: 2, path: '/5/7', sortOrder: 2 },
    { id: 8, code: 'VIS-APP', name: '겉모양', parentId: 5, level: 2, path: '/5/8', sortOrder: 3 },
    { id: 9, code: 'FUNC', name: '기능검사', parentId: null, level: 1, path: '/9', sortOrder: 3 },
    { id: 10, code: 'FUNC-OP', name: '동작', parentId: 9, level: 2, path: '/9/10', sortOrder: 1 },
    { id: 11, code: 'MECH', name: '기계적성질', parentId: null, level: 1, path: '/11', sortOrder: 4 },
    { id: 12, code: 'MECH-TEN', name: '인장강도', parentId: 11, level: 2, path: '/11/12', sortOrder: 1 },
    { id: 13, code: 'MECH-ELO', name: '연신율', parentId: 11, level: 2, path: '/11/13', sortOrder: 2 },
    { id: 14, code: 'COAT', name: '도금검사', parentId: null, level: 1, path: '/14', sortOrder: 5 },
    { id: 15, code: 'COAT-ZN', name: '아연부착량', parentId: 14, level: 2, path: '/14/15', sortOrder: 1 },
  ],
  // KS규격 참조 정보
  ksStandards: [
    {
      id: 1,
      code: 'KS D 3528',
      name: '용융아연도금강판 및 강대',
      description: 'EGI/CGI 자재 검사 규격',
      applicableTypes: ['IQC'],
      inspectionItems: [
        { item: '겉모양', method: '육안검사', standard: '사용상 해로운 결함이 없을 것' },
        { item: '두께', method: '체크검사', toleranceByThickness: [
          { min: 0, max: 0.4, tolerance: '± 0.04' },
          { min: 0.4, max: 0.6, tolerance: '± 0.05' },
          { min: 0.6, max: 0.8, tolerance: '± 0.06' },
          { min: 0.8, max: 1.0, tolerance: '± 0.07' },
          { min: 1.0, max: 1.25, tolerance: '± 0.08' },
          { min: 1.25, max: 1.6, tolerance: '± 0.10' },
          { min: 1.6, max: 2.0, tolerance: '± 0.12' },
          { min: 2.0, max: 2.5, tolerance: '± 0.14' },
          { min: 2.5, max: 3.15, tolerance: '± 0.17' },
        ]},
        { item: '너비', method: '계측기', tolerance: '± 5mm' },
        { item: '길이', method: '계측기', tolerance: '± 10mm (코일은 제외)' },
        { item: '인장강도', method: '인장시험', unit: 'N/mm²', minValue: 270 },
        { item: '연신율', method: '인장시험', unit: '%', minValue: 28 },
        { item: '아연부착량', method: '부착량시험', unit: 'g/m²', minValue: 90 },
      ]
    },
    {
      id: 2,
      code: 'KS F 4510',
      name: '건축용 방충망',
      description: '스크린/방충망 제품 검사 규격',
      applicableTypes: ['PQC', 'FQC'],
      inspectionItems: [
        { item: '외관', method: '육안검사', standard: '스크래치/오염/변형 없음' },
        { item: '치수(폭)', method: '줄자', tolerance: '± 3mm' },
        { item: '치수(길이)', method: '줄자', tolerance: '± 5mm' },
        { item: '직각도', method: '직각자', tolerance: '± 1°' },
        { item: '평탄도', method: '육안/자', standard: '굴곡 3mm 이하' },
      ]
    },
    {
      id: 3,
      code: 'KS D 3503',
      name: '일반구조용 압연강재',
      description: '절곡품/구조재 검사 규격',
      applicableTypes: ['PQC', 'FQC'],
      inspectionItems: [
        { item: '외관', method: '육안검사', standard: '균열/찍힘 없음' },
        { item: '치수(폭)', method: '버니어캘리퍼스', tolerance: '± 2mm' },
        { item: '치수(길이)', method: '줄자', tolerance: '± 3mm' },
        { item: '절곡각도', method: '각도기', tolerance: '± 1°' },
        { item: '직진도', method: '육안/자', standard: '휨 2mm/m 이하' },
      ]
    },
  ],
  // 샘플링 기준 (AQL 기반)
  samplingPlans: [
    {
      id: 1,
      name: 'KS Q ISO 2859-1',
      description: 'AQL 샘플링 검사',
      levels: [
        { lotSizeMin: 2, lotSizeMax: 8, sampleSize: 2, acceptanceNumber: 0, rejectionNumber: 1 },
        { lotSizeMin: 9, lotSizeMax: 15, sampleSize: 3, acceptanceNumber: 0, rejectionNumber: 1 },
        { lotSizeMin: 16, lotSizeMax: 25, sampleSize: 5, acceptanceNumber: 0, rejectionNumber: 1 },
        { lotSizeMin: 26, lotSizeMax: 50, sampleSize: 8, acceptanceNumber: 0, rejectionNumber: 1 },
        { lotSizeMin: 51, lotSizeMax: 90, sampleSize: 13, acceptanceNumber: 1, rejectionNumber: 2 },
        { lotSizeMin: 91, lotSizeMax: 150, sampleSize: 20, acceptanceNumber: 1, rejectionNumber: 2 },
        { lotSizeMin: 151, lotSizeMax: 280, sampleSize: 32, acceptanceNumber: 2, rejectionNumber: 3 },
        { lotSizeMin: 281, lotSizeMax: 500, sampleSize: 50, acceptanceNumber: 3, rejectionNumber: 4 },
        { lotSizeMin: 501, lotSizeMax: 1200, sampleSize: 80, acceptanceNumber: 5, rejectionNumber: 6 },
      ]
    },
    {
      id: 2,
      name: '다중측정 샘플링',
      description: '다중 측정 포인트 검사 (n=3~5)',
      defaultSampleSize: 3,
      measurementPoints: 5,
      acceptanceNumber: 0,
    }
  ],
  masterFields: [
    { id: 1, fieldKey: 'inspectionCode', fieldName: '검사코드', inputType: 'text', isRequired: true, validations: { maxLength: 20 }, description: '검사 식별 코드' },
    { id: 2, fieldKey: 'inspectionName', fieldName: '검사명', inputType: 'text', isRequired: true, validations: { maxLength: 100 }, description: '검사 항목명' },
    { id: 3, fieldKey: 'inspectionType', fieldName: '검사유형', inputType: 'select', isRequired: true, options: { items: ['입고검사', '중간검사', '제품검사'] }, description: '검사 유형' },
    { id: 4, fieldKey: 'measureMethod', fieldName: '측정방법', inputType: 'select', isRequired: false, options: { items: ['육안', '계측기', '자동측정', '줄자', '버니어캘리퍼스', '인장시험기'] }, description: '측정 방법' },
    { id: 5, fieldKey: 'specMin', fieldName: '규격하한', inputType: 'number', isRequired: false, description: '규격 하한값' },
    { id: 6, fieldKey: 'specMax', fieldName: '규격상한', inputType: 'number', isRequired: false, description: '규격 상한값' },
    { id: 7, fieldKey: 'tolerance', fieldName: '허용오차', inputType: 'text', isRequired: false, description: '규격 허용오차 (예: ± 3mm)' },
    { id: 8, fieldKey: 'unit', fieldName: '단위', inputType: 'text', isRequired: false, description: '측정 단위' },
    { id: 9, fieldKey: 'sampleSize', fieldName: '샘플수량', inputType: 'number', isRequired: false, validations: { min: 1, max: 100 }, description: '검사 샘플 수량' },
    { id: 10, fieldKey: 'measurementPoints', fieldName: '측정포인트수', inputType: 'number', isRequired: false, validations: { min: 1, max: 10 }, description: '다중 측정 포인트 수 (①~⑤ 등)' },
    { id: 11, fieldKey: 'aqlLevel', fieldName: 'AQL수준', inputType: 'select', isRequired: false, options: { items: ['0.1', '0.25', '0.65', '1.0', '2.5', '4.0'] }, description: 'AQL 수준' },
    { id: 12, fieldKey: 'acceptanceNumber', fieldName: '합격판정개수', inputType: 'number', isRequired: false, validations: { min: 0 }, description: 'c값 (불합격품 허용 개수)' },
    { id: 13, fieldKey: 'ksStandardRef', fieldName: 'KS규격참조', inputType: 'select', isRequired: false, options: { items: ['KS D 3528', 'KS F 4510', 'KS D 3503'] }, description: '적용 KS 규격' },
    { id: 14, fieldKey: 'judgementType', fieldName: '판정방식', inputType: 'select', isRequired: false, options: { items: ['적/부', '합격/불합격', 'OK/NG', 'Pass/Fail'] }, description: '판정 표기 방식' },
    { id: 15, fieldKey: 'description', fieldName: '검사설명', inputType: 'textarea', isRequired: false, description: '검사 상세 설명' },
  ],
  masterSections: [
    { id: 1, sectionKey: 'basicInfo', sectionName: '기본정보', sectionType: 'general', applicableTypes: ['IQC', 'PQC', 'FQC'], description: '검사 기본 정보', fields: [1, 2, 3, 4] },
    { id: 2, sectionKey: 'specInfo', sectionName: '규격정보', sectionType: 'general', applicableTypes: ['IQC', 'PQC', 'FQC'], description: '검사 규격 정보', fields: [5, 6, 7, 8, 13] },
    { id: 3, sectionKey: 'samplingInfo', sectionName: '샘플링정보', sectionType: 'general', applicableTypes: ['IQC', 'FQC'], description: '샘플링 정보', fields: [9, 10, 11, 12] },
    { id: 4, sectionKey: 'judgementInfo', sectionName: '판정정보', sectionType: 'general', applicableTypes: ['IQC', 'PQC', 'FQC'], description: '판정 방식 설정', fields: [14, 15] },
  ],
  // 검사항목 템플릿 (KS규격 기반)
  // ★ 품질기준관리에서 템플릿 선택 시 해당 검사항목이 자동 로드됨
  inspectionItemTemplates: {
    // 수입검사 (IQC) 템플릿
    IQC: {
      // EGI 철판 - 전기 아연도금 강판 (KS D 3528, SECC)
      EGI: [
        {
          item: '겉모양',
          standard: '사용상 해로운 결함이 없을 것',
          method: '육안검사',
          frequency: '',
          measurementPoints: 3,
          measurementType: 'okng', // OK/NG 선택형
          judgementType: '적/부'
        },
        {
          item: '치수',
          subItems: [
            {
              name: '두께',
              unit: 'mm',
              toleranceRanges: [
                { range: '0.8 이상 ~ 1.0 미만', tolerance: '± 0.07' },
                { range: '1.0 이상 ~ 1.25 미만', tolerance: '± 0.08' },
                { range: '1.25 이상 ~ 1.6 미만', tolerance: '± 0.10' },
                { range: '1.6 이상 ~ 2.0 미만', tolerance: '± 0.12' },
              ],
            },
            {
              name: '너비',
              unit: 'mm',
              toleranceRanges: [
                { range: '1250 미만', tolerance: '+7 / -0' },
                { range: '1250 이상', tolerance: '+10 / -0' },
              ],
            },
            {
              name: '길이',
              unit: 'mm',
              toleranceRanges: [
                { range: '1250 미만', tolerance: '+10 / -0' },
                { range: '2000 이상 ~ 4000 미만', tolerance: '+15 / -0' },
                { range: '4000 이상 ~ 6000 미만', tolerance: '+20 / -0' },
              ],
            },
          ],
          method: '체크검사',
          frequency: 'n=3, c=0',
          measurementPoints: 3,
          measurementType: 'value', // 수치 입력형
          judgementType: '적/부'
        },
        {
          item: '인장강도',
          standard: '270 이상',
          method: '',
          frequency: '',
          unit: 'N/mm²',
          measurementPoints: 1,
          measurementType: 'value',
          judgementType: '적/부'
        },
        {
          item: '연신율',
          unit: '%',
          toleranceRanges: [
            { range: '두께 0.6 이상 ~ 1.0 미만', value: '36 이상' },
            { range: '두께 1.0 이상 ~ 1.6 미만', value: '37 이상' },
            { range: '두께 1.6 이상 ~ 2.3 미만', value: '38 이상' },
          ],
          method: '공급업체 밀시트',
          frequency: '입고시',
          measurementPoints: 1,
          measurementType: 'value',
          judgementType: '적/부'
        },
        {
          item: '아연의 최소 부착량',
          standard: '한면 17 이상',
          method: '',
          frequency: '',
          unit: 'g/m²',
          measurementPoints: 1,
          measurementType: 'value',
          note: '양면 기록 (예: 17.21 / 17.17)',
          judgementType: '적/부'
        },
      ],
      CGI: [
        { item: '겉모양', standard: '사용상 해로운 결함이 없을 것', method: '육안검사', judgementType: '적/부' },
        { item: '두께', standard: '규격 참조', method: '체크검사', unit: 'mm', measurementPoints: 3, judgementType: '적/부' },
        { item: '너비', standard: '규격 참조', method: '계측기', unit: 'mm', tolerance: '± 5', measurementPoints: 3, judgementType: '적/부' },
        { item: '인장강도', standard: '270 이상', method: '인장시험', unit: 'N/mm²', measurementPoints: 3, judgementType: '적/부' },
        { item: '아연부착량', standard: '90 이상', method: '부착량시험', unit: 'g/m²', measurementPoints: 3, judgementType: '적/부' },
      ],
    },
    // 중간검사 (PQC) 템플릿 - 공정별 상세 검사항목
    PQC: {
      // 스크린 공정 중간검사 (첨부파일: 스크린-중간 검사성적서)
      SCREEN: {
        templateName: '스크린-중간 검사성적서',
        checkPoint: '앤드락 작업 후',
        diagram: {
          type: 'screen',
          measurements: ['길이(①)', '높이(②)', '간격(③)']
        },
        inspectionStandard: {
          title: '검사항목',
          sections: [
            {
              name: '결모양',
              category: '가공상태',
              standard: '사용상 해로운 결함이 없을 것',
              method: '육안검사',
              judgementType: '적/부',
              relatedStandard: 'KS F 4510 5.1항'
            },
            {
              name: '결모양',
              category: '재봉상태',
              standard: '내화실에 의해 견고하게 접합되어야 함',
              method: '육안검사',
              judgementType: '적/부',
              relatedStandard: 'KS F 4510 9항'
            },
            {
              name: '결모양',
              category: '조립상태',
              standard: '앤드락이 용접부에 확고토록하여야 함',
              method: '육안검사',
              judgementType: '적/부',
              relatedStandard: ''
            },
          ],
          measurements: [
            {
              category: '치수',
              item: '높이',
              point: '①',
              standard: '16.5 ± 1',
              method: '체크검사',
              relatedStandard: 'KS F 4510 7항 표9',
              unit: 'mm'
            },
            {
              category: '치수',
              item: '높이',
              point: '②',
              standard: '14.5 ± 1',
              method: '체크검사',
              relatedStandard: '',
              unit: 'mm'
            },
            {
              category: '치수',
              item: '길이',
              point: '③',
              standard: '도면치수(앤드락제외) ± 4',
              method: '체크검사',
              relatedStandard: '',
              unit: 'mm'
            },
          ]
        },
        dataTable: {
          columns: ['가공상태', '재봉상태', '조립상태', '높이(①)', '높이(②)', '길이(③)'],
          judgement: ['적합', '부적합']
        }
      },

      // 슬랫 공정 중간검사 (첨부파일: 슬랫-중간 검사성적서)
      SLAT: {
        templateName: '슬랫-중간 검사성적서',
        checkPoint: '슬랫 절단 후',
        inspectionStandard: {
          sections: [
            {
              name: '결모양',
              category: '절곡상태',
              standard: '사용상 해로운 결함이 없을 것',
              method: '육안검사',
              judgementType: '적/부'
            }
          ],
          measurements: [
            {
              category: '치수',
              item: '높이',
              standard: '도면치수',
              tolerance: '± 3',
              method: '체크검사',
              unit: 'mm'
            },
            {
              category: '치수',
              item: '피치',
              standard: '82mm',
              tolerance: '± 1',
              method: '체크검사',
              unit: 'mm'
            },
          ]
        }
      },

      // 절곡 공정 중간검사 (첨부파일: 절곡품-중간 검사성적서)
      FOLD: {
        templateName: '절곡품-중간 검사성적서',
        checkPoint: '절곡 후',
        partTypes: [
          {
            code: 'GUIDE_RAIL',
            name: '가이드레일',
            subParts: ['가이드레일', '케이스', '하단마감재']
          },
          {
            code: 'SMOKE_BARRIER',
            name: '연기차단재',
            subParts: ['가이드레일용', '케이스용']
          }
        ],
        inspectionStandard: {
          sections: [
            {
              name: '결모양',
              category: '절곡상태',
              standard: '사용상 해로운 결함이 없을 것',
              method: '육안검사',
              judgementType: '적/부'
            }
          ],
          measurements: [
            {
              category: '치수',
              item: '길이',
              standard: '도면치수',
              tolerance: '± 4',
              method: '도면치수',
              unit: 'mm'
            },
            {
              category: '치수',
              item: '너비',
              point: 'POINT',
              standard: '도면치수',
              tolerance: '± 2',
              method: '도면치수',
              unit: 'mm'
            },
            {
              category: '치수',
              item: '간격',
              standard: '도면치수',
              tolerance: '± 4',
              method: '도면치수',
              unit: 'mm'
            },
          ]
        },
        dataTable: {
          columns: ['절곡상태', '길이(도면치수)', '너비(POINT)', '간격(도면치수)'],
          hasMultipleItems: true, // 여러 제품명을 행으로 추가 가능
          itemColumns: ['제품명', '타입']
        }
      },

      // 조인트바 공정 중간검사 (첨부파일: 조인트바-중간 검사성적서)
      JOINT_BAR: {
        templateName: '조인트바-중간 검사성적서',
        checkPoint: '조인트바 가공 후',
        inspectionStandard: {
          sections: [
            {
              name: '결모양',
              category: '절곡상태',
              standard: '사용상 해로운 결함이 없을 것',
              method: '육안검사',
              judgementType: '적/부'
            }
          ],
          measurements: [
            {
              category: '치수',
              item: '높이',
              point: '①',
              standard: '16.5',
              tolerance: '± 1',
              method: '체크검사',
              unit: 'mm'
            },
            {
              category: '치수',
              item: '높이',
              point: '②',
              standard: '14.5',
              tolerance: '± 1',
              method: '체크검사',
              unit: 'mm'
            },
            {
              category: '치수',
              item: '길이(미미재외)',
              point: '③',
              standard: '300(앤드락제외)',
              tolerance: '± 4',
              method: '체크검사',
              unit: 'mm'
            },
            {
              category: '치수',
              item: '간격',
              point: '④',
              standard: '150',
              tolerance: '± 4',
              method: '체크검사',
              unit: 'mm'
            },
          ]
        }
      },

      // 재고/포장 공정 중간검사 (간소화 버전)
      STOCK: {
        templateName: '재고관리 중간검사',
        checkPoint: '재고 입출고 시',
        inspectionStandard: {
          sections: [
            {
              name: '외관',
              category: '보관상태',
              standard: '손상/변형 없을 것',
              method: '육안검사',
              judgementType: '적/부'
            }
          ],
          measurements: [
            {
              category: '수량',
              item: '재고수량',
              standard: '시스템 수량 일치',
              method: '계수',
              unit: 'EA'
            }
          ]
        }
      },

      PACK: {
        templateName: '포장 중간검사',
        checkPoint: '포장 완료 후',
        inspectionStandard: {
          sections: [
            {
              name: '외관',
              category: '포장상태',
              standard: '포장 이상 없을 것',
              method: '육안검사',
              judgementType: '적/부'
            }
          ],
          measurements: [
            {
              category: '구성품',
              item: '구성품 확인',
              standard: '누락 없을 것',
              method: '체크리스트',
              unit: '-'
            }
          ]
        }
      }
    },
    // 제품검사 (FQC) 템플릿 - 출하 후 고객요청 검사 기반
    FQC: {
      DEFAULT: [
        { item: '치수검사', standard: '도면규격', method: '계측기', measurementPoints: 5, judgementType: '적/부' },
        { item: '외관검사', standard: '외관 이상 없음', method: '육안검사', measurementPoints: 5, judgementType: '적/부' },
        { item: '기능검사', standard: '정상 동작', method: '실동작시험', measurementPoints: 5, judgementType: '적/부' },
        { item: '포장상태', standard: '포장 이상 없음', method: '육안검사', measurementPoints: 5, judgementType: '적/부' },
      ],
      // 스크린 셔터 제품검사 (KS F 4510 기반)
      SCREEN_SHUTTER: [
        // 1. 겉모양 검사
        {
          category: '겉모양',
          items: [
            { item: '가공상태', standard: '사용상 해로운 결함이 없을 것', method: '육안검사', inspectionCycle: '전수검사', judgementType: '적/부', relatedStandard: '' },
            { item: '재봉상태', standard: '내화실에 의해 견고하게 접합되어야 함', method: '육안검사', inspectionCycle: '전수검사', judgementType: '적/부', relatedStandard: '' },
            { item: '조립상태', standard: '앤드락이 견고하게 조립되어야 함', method: '육안검사', inspectionCycle: '전수검사', judgementType: '적/부', relatedStandard: '' },
            { item: '연기차단재', standard: '연기차단재 설치여부(케이스 W80, 가이드레일 W50(양측설치))', method: '육안검사', inspectionCycle: '전수검사', judgementType: '적/부', relatedStandard: '' },
            { item: '하단마감재', standard: '내부 무게평철 설치 유무', method: '육안검사', inspectionCycle: '전수검사', judgementType: '적/부', relatedStandard: '' },
          ]
        },
        // 2. 모터 검사
        {
          category: '모터',
          items: [
            { item: '모터', standard: '인정제품과 동일사양', method: '육안검사', inspectionCycle: '전수검사', judgementType: '적/부', relatedStandard: '' },
          ]
        },
        // 3. 재질 검사
        {
          category: '재질',
          items: [
            { item: '재질', standard: 'WY-SC780 인쇄상태 확인', method: '육안검사', inspectionCycle: '전수검사', judgementType: '적/부', relatedStandard: '' },
          ]
        },
        // 4. 치수 검사 (오픈사이즈)
        {
          category: '치수(오픈사이즈)',
          items: [
            { item: '길이', standard: '발주치수 ± 30mm', method: '체크검사', inspectionCycle: '전수검사', judgementType: '적/부', hasMeasurement: true, relatedStandard: '' },
            { item: '높이', standard: '발주치수 ± 30mm', method: '체크검사', inspectionCycle: '전수검사', judgementType: '적/부', hasMeasurement: true, relatedStandard: '' },
            { item: '가이드레일 홈간격', standard: '10 ± 5mm(측정부위: ⓐ 높이 100 이내)', method: '체크검사', inspectionCycle: '전수검사', judgementType: '적/부', hasMeasurement: true, relatedStandard: '' },
            { item: '하단마감재간격', standard: '가이드레일과 하단마감재 틈새 25mm 이내', method: '체크검사', inspectionCycle: '전수검사', judgementType: '적/부', hasMeasurement: true, note: '간격 (③+④)', relatedStandard: '' },
          ]
        },
        // 5. 작동테스트
        {
          category: '작동테스트',
          items: [
            { item: '개폐성능', standard: '작동 유무 확인(일부 및 완전폐쇄)', method: '실동작시험', inspectionCycle: '전수검사', judgementType: '적/부', relatedStandard: '' },
          ]
        },
        // 6. 내화시험 (공인시험기관)
        {
          category: '내화시험',
          items: [
            { item: '비차열', standard: '6mm 균열게이지 관통 후 150mm 이동 유무', method: '공인시험기관 시험성적서', inspectionCycle: '1회/5년', judgementType: '적/부', isExternalTest: true, relatedStandard: '' },
            { item: '차열', standard: '25mm 균열게이지 관통 유무', method: '공인시험기관 시험성적서', inspectionCycle: '1회/5년', judgementType: '적/부', isExternalTest: true, relatedStandard: '' },
            { item: '열성', standard: '10초 이상 지속되는 화염발생 유무', method: '공인시험기관 시험성적서', inspectionCycle: '1회/5년', judgementType: '적/부', isExternalTest: true, relatedStandard: '' },
          ]
        },
        // 7. 차연시험 (공인시험기관)
        {
          category: '차연시험',
          items: [
            { item: '공기누설량', standard: '25Pa 일때 공기누설량 0.9㎥/min·㎡ 이하', method: '공인시험기관 시험성적서', inspectionCycle: '1회/5년', judgementType: '적/부', isExternalTest: true, relatedStandard: '' },
          ]
        },
        // 8. 개폐시험 (공인시험기관)
        {
          category: '개폐시험',
          items: [
            { item: '개폐의 원활한 작동', standard: '개폐의 원활한 작동', method: '공인시험기관 시험성적서', inspectionCycle: '1회/5년', judgementType: '적/부', isExternalTest: true, relatedStandard: '' },
            { item: '평균속도-전도개폐', standard: '2.5 ~ 6.5m/min', method: '공인시험기관 시험성적서', inspectionCycle: '1회/5년', judgementType: '적/부', isExternalTest: true, relatedStandard: '' },
            { item: '평균속도-자중강하', standard: '3 ~ 7m/min', method: '공인시험기관 시험성적서', inspectionCycle: '1회/5년', judgementType: '적/부', isExternalTest: true, relatedStandard: '' },
            { item: '개폐 시 상부 및 하부 끝부분에서 자동정지', standard: '상하부 끝부분 자동정지', method: '공인시험기관 시험성적서', inspectionCycle: '1회/5년', judgementType: '적/부', isExternalTest: true, relatedStandard: '' },
            { item: '강하 중 임의의 위치에서 정지', standard: '임의 위치 정지', method: '공인시험기관 시험성적서', inspectionCycle: '1회/5년', judgementType: '적/부', isExternalTest: true, relatedStandard: '' },
          ]
        },
        // 9. 내충격시험 (공인시험기관)
        {
          category: '내충격시험',
          items: [
            { item: '내충격시험', standard: '방화상 유해한 파괴, 박리 탈락 유무', method: '공인시험기관 시험성적서', inspectionCycle: '1회/5년', judgementType: '적/부', isExternalTest: true, relatedStandard: '' },
          ]
        },
      ],
      // 슬랫 셔터 제품검사
      SLAT_SHUTTER: [
        {
          category: '겉모양',
          items: [
            { item: '가공상태', standard: '사용상 해로운 결함이 없을 것', method: '육안검사', inspectionCycle: '전수검사', judgementType: '적/부' },
            { item: '슬랫조립상태', standard: '슬랫 연결부 견고하게 조립', method: '육안검사', inspectionCycle: '전수검사', judgementType: '적/부' },
          ]
        },
        {
          category: '치수',
          items: [
            { item: '길이', standard: '발주치수 ± 20mm', method: '체크검사', inspectionCycle: '전수검사', judgementType: '적/부', hasMeasurement: true },
            { item: '높이', standard: '발주치수 ± 20mm', method: '체크검사', inspectionCycle: '전수검사', judgementType: '적/부', hasMeasurement: true },
          ]
        },
        {
          category: '작동테스트',
          items: [
            { item: '개폐성능', standard: '작동 유무 확인', method: '실동작시험', inspectionCycle: '전수검사', judgementType: '적/부' },
          ]
        },
      ],
    },
  },
  pageTemplates: [
    {
      id: 1, pageCode: 'inspection_registration', pageName: '검사기준 등록', pagePath: '/기준정보/검사기준_등록', itemTypes: ['IQC'],
      sections: [
        { sectionId: 1, sectionKey: 'basicInfo', sectionName: '기본정보', sortOrder: 1, fields: [
          { fieldId: 1, fieldKey: 'inspectionCode', fieldName: '검사코드', inputType: 'text', isRequired: true },
          { fieldId: 2, fieldKey: 'inspectionName', fieldName: '검사명', inputType: 'text', isRequired: true },
        ]},
      ],
      conditions: []
    },
    {
      id: 2, pageCode: 'incoming_inspection', pageName: '수입검사성적서', pagePath: '/품질관리/수입검사', itemTypes: ['IQC'],
      sections: [
        { sectionId: 1, sectionKey: 'basicInfo', sectionName: '품목정보', sortOrder: 1 },
        { sectionId: 2, sectionKey: 'samplingInfo', sectionName: '샘플링정보', sortOrder: 2 },
        { sectionId: 3, sectionKey: 'inspectionItems', sectionName: '검사항목', sortOrder: 3, isMultiRow: true, measurementColumns: ['n1', 'n2', 'n3'] },
        { sectionId: 4, sectionKey: 'judgementInfo', sectionName: '종합판정', sortOrder: 4 },
      ],
      conditions: []
    },
    {
      id: 3, pageCode: 'process_inspection', pageName: '중간검사성적서', pagePath: '/품질관리/중간검사', itemTypes: ['PQC'],
      sections: [
        { sectionId: 1, sectionKey: 'basicInfo', sectionName: '작업지시정보', sortOrder: 1 },
        { sectionId: 2, sectionKey: 'samplingInfo', sectionName: '샘플링정보', sortOrder: 2 },
        { sectionId: 3, sectionKey: 'inspectionItems', sectionName: '검사항목', sortOrder: 3, isMultiRow: true, measurementColumns: ['①', '②', '③', '④', '⑤'] },
        { sectionId: 4, sectionKey: 'judgementInfo', sectionName: '종합판정', sortOrder: 4 },
      ],
      conditions: []
    },
  ],

  // ============ 등록된 검사기준 샘플 데이터 ============
  sampleInspectionStandards: [
    // 입고검사 기준
    {
      id: 1,
      inspectionCode: 'IQC-SCR-001',
      inspectionName: '스크린 원단 입고검사',
      inspectionType: 'IQC',
      targetItem: '스크린 원단',
      samplingLevel: 'S-2',
      aqlLevel: '1.0',
      inspectionItems: [
        { seq: 1, item: '외관검사', spec: '이물/오염/손상 없을 것', method: '육안', equipment: '-', isRequired: true },
        { seq: 2, item: '두께', spec: '0.8±0.1mm', method: '측정', equipment: '두께게이지', isRequired: true },
        { seq: 3, item: '폭', spec: '1200±5mm', method: '측정', equipment: '줄자', isRequired: true },
        { seq: 4, item: '색상', spec: '샘플대비 동일', method: '비교', equipment: '색상표', isRequired: false },
      ],
      ksStandard: 'KS F 4510',
      isActive: true,
      createdAt: '2024-01-15',
    },
    {
      id: 2,
      inspectionCode: 'IQC-SLT-001',
      inspectionName: '슬랫 코일 입고검사',
      inspectionType: 'IQC',
      targetItem: '슬랫 코일',
      samplingLevel: 'S-2',
      aqlLevel: '1.0',
      inspectionItems: [
        { seq: 1, item: '외관검사', spec: '흠집/녹/변형 없을 것', method: '육안', equipment: '-', isRequired: true },
        { seq: 2, item: '두께', spec: '0.5±0.05mm', method: '측정', equipment: '마이크로미터', isRequired: true },
        { seq: 3, item: '폭', spec: '82±1mm', method: '측정', equipment: '버니어캘리퍼스', isRequired: true },
        { seq: 4, item: '도금상태', spec: '도금 벗겨짐 없을 것', method: '육안', equipment: '-', isRequired: true },
      ],
      ksStandard: 'KS D 3528',
      isActive: true,
      createdAt: '2024-01-15',
    },
    {
      id: 3,
      inspectionCode: 'IQC-STL-001',
      inspectionName: '철판 입고검사',
      inspectionType: 'IQC',
      targetItem: '철판(아연도금강판)',
      samplingLevel: 'S-3',
      aqlLevel: '0.65',
      inspectionItems: [
        { seq: 1, item: '외관검사', spec: '녹/흠집/변형 없을 것', method: '육안', equipment: '-', isRequired: true },
        { seq: 2, item: '두께', spec: '1.6±0.1mm', method: '측정', equipment: '마이크로미터', isRequired: true },
        { seq: 3, item: '규격', spec: '1219×2438mm', method: '측정', equipment: '줄자', isRequired: true },
        { seq: 4, item: '도금밀착도', spec: '테이프테스트 합격', method: '테이프테스트', equipment: '접착테이프', isRequired: true },
      ],
      ksStandard: 'KS D 3503',
      isActive: true,
      createdAt: '2024-01-15',
    },
    // 중간검사 기준
    {
      id: 4,
      inspectionCode: 'PQC-SCR-001',
      inspectionName: '스크린 중간검사',
      inspectionType: 'PQC',
      targetProcess: '스크린',
      samplingLevel: '전수',
      inspectionItems: [
        { seq: 1, item: '절단치수', spec: '지정치수 ±5mm', method: '측정', equipment: '줄자', isRequired: true },
        { seq: 2, item: '봉제상태', spec: '풀림/건너뜀 없을 것', method: '육안', equipment: '-', isRequired: true },
        { seq: 3, item: '앤드락 부착', spec: '탈락 없이 견고할 것', method: '당김테스트', equipment: '-', isRequired: true },
        { seq: 4, item: '외관', spec: '오염/손상 없을 것', method: '육안', equipment: '-', isRequired: true },
      ],
      isActive: true,
      createdAt: '2024-01-15',
    },
    {
      id: 5,
      inspectionCode: 'PQC-SLT-001',
      inspectionName: '슬랫 중간검사',
      inspectionType: 'PQC',
      targetProcess: '슬랫',
      samplingLevel: '전수',
      inspectionItems: [
        { seq: 1, item: '절단치수', spec: '주문 높이 ±3mm', method: '측정', equipment: '줄자', isRequired: true },
        { seq: 2, item: '피치', spec: '82mm ±1mm', method: '측정', equipment: '버니어캘리퍼스', isRequired: true },
        { seq: 3, item: '수량', spec: '산출수량 일치', method: '계수', equipment: '-', isRequired: true },
        { seq: 4, item: '외관', spec: '흠집/변형 없을 것', method: '육안', equipment: '-', isRequired: true },
      ],
      isActive: true,
      createdAt: '2024-01-15',
    },
    {
      id: 6,
      inspectionCode: 'PQC-FLD-001',
      inspectionName: '절곡 중간검사',
      inspectionType: 'PQC',
      targetProcess: '절곡',
      samplingLevel: '전수',
      inspectionItems: [
        { seq: 1, item: '절곡각도', spec: '90°±2°', method: '측정', equipment: '각도기', isRequired: true },
        { seq: 2, item: '치수', spec: '도면치수 ±2mm', method: '측정', equipment: '줄자', isRequired: true },
        { seq: 3, item: '절단면', spec: '버(Burr) 제거', method: '육안/촉감', equipment: '-', isRequired: true },
        { seq: 4, item: '외관', spec: '찍힘/긁힘 없을 것', method: '육안', equipment: '-', isRequired: true },
      ],
      isActive: true,
      createdAt: '2024-01-15',
    },
    // 제품검사 기준 (출하 후 고객요청)
    {
      id: 7,
      inspectionCode: 'FQC-001',
      inspectionName: '제품검사',
      inspectionType: 'FQC',
      targetItem: '완제품(방화셔터)',
      samplingLevel: 'S-2',
      aqlLevel: '0.65',
      inspectionItems: [
        { seq: 1, item: '외관검사', spec: '손상/오염 없을 것', method: '육안', equipment: '-', isRequired: true },
        { seq: 2, item: '치수검사', spec: '주문규격 ±5mm', method: '측정', equipment: '줄자', isRequired: true },
        { seq: 3, item: '구성품 확인', spec: '누락 없을 것', method: '체크리스트', equipment: '-', isRequired: true },
        { seq: 4, item: '라벨 확인', spec: '정보 일치', method: '비교', equipment: '-', isRequired: true },
        { seq: 5, item: '포장상태', spec: '파손방지 포장', method: '육안', equipment: '-', isRequired: true },
      ],
      isActive: true,
      createdAt: '2024-01-15',
    },
  ],
};

export default inspectionMasterConfig;
