/**
 * 절곡 작업일지 전용 타입 정의
 *
 * PHP viewBendingWork_slat.php 기반
 * 가이드레일 / 하단마감재 / 셔터박스 / 연기차단재 4개 카테고리
 */

// 길이별 수량 데이터
export interface LengthQuantity {
  length: number;   // mm (2438, 3000, 3500, 4000, 4300 등)
  quantity: number;
}

// 가이드레일 타입별 데이터
export interface GuideRailTypeData {
  lengthData: LengthQuantity[];
  baseSize: string;          // BOM 프로파일 사이즈 "130*75" (섹션 제목용)
  baseDimension?: string;    // 실제 하부BASE 물리 치수 "135*130" (작업일지 표시/무게계산용)
}

// 셔터박스 데이터
export interface ShutterBoxData {
  size: string;              // "500*380" 등
  direction: string;         // "양면" | "밑면" | "후면"
  railWidth: number;
  frontBottom: number;
  coverQty: number;          // 상부덮개 수량
  finCoverQty: number;       // 마구리 수량
  lengthData: LengthQuantity[];
}

// 확장된 bending_info 구조 (options JSON에 저장)
export interface BendingInfoExtended {
  // 기존 필드 (유지)
  drawingUrl?: string;
  common: {
    kind: string;           // "혼합형 120X70"
    type: string;           // "혼합형(130*75)(130*125)" | "벽면형(130*75)" | "측면형(130*125)"
    lengthQuantities: LengthQuantity[];
  };
  detailParts: Array<{
    partName: string;       // "엘바", "하장바"
    material: string;       // "EGI 1.6T"
    barcyInfo: string;      // "16 I 75"
  }>;

  // 신규 필드
  productCode: string;        // "KTE01", "KQTS01", "KSE01", "KSS01", "KWE01"
  finishMaterial: string;     // "EGI마감", "SUS마감"

  guideRail: {
    wall: GuideRailTypeData | null;
    side: GuideRailTypeData | null;
  };

  bottomBar: {
    material: string;          // "EGI 1.55T" 또는 "SUS 1.5T"
    extraFinish: string;       // "SUS 1.2T" 또는 "없음"
    length3000Qty: number;
    length4000Qty: number;
  };

  shutterBox: ShutterBoxData[];

  smokeBarrier: {
    w50: LengthQuantity[];     // 레일용 W50
    w80Qty: number;            // 케이스용 W80 수량
  };

  // STOCK 재고생산 전용
  isStockProduction?: boolean;
  stockPartFilter?: Array<{
    itemName: string;  // "가이드레일(측면) 본체(철재) 2438mm"
    partKey: string;   // "본체", "C형", "D형", "마감재" 등
  }>;
}

// 재질 매핑 결과
export interface MaterialMapping {
  guideRailFinish: string;      // ①②마감재
  bodyMaterial: string;          // ③본체, ④C형, ⑤D형
  guideRailExtraFinish: string;  // ⑥별도마감 (SUS마감 시만)
  bottomBarFinish: string;       // 하단마감재
  bottomBarExtraFinish: string;  // 별도마감재
}

// 무게 계산 결과
export interface WeightResult {
  weight: number;   // kg
  type: 'SUS' | 'EGI';
}

// 가이드레일 파트 행
export interface GuideRailPartRow {
  partName: string;    // ①②마감재, ③본체, ④C형, ⑤D형, ⑥별도마감, 하부BASE
  lotPrefix: string;   // XX, RT, RC, RD, RS (벽면) / SS, ST, SC, SD (측면)
  material: string;    // SUS 1.2T, EGI 1.55T
  length: number;      // mm
  quantity: number;
  weight: number;      // kg
}

// 하단마감재 파트 행
export interface BottomBarPartRow {
  partName: string;    // ①하단마감재, ④별도마감재
  lotPrefix: string;   // TE(EGI)/TS(SUS)
  material: string;
  length: number;      // 3000 또는 4000
  quantity: number;
  weight: number;
}

// 셔터박스 구성요소 행
export interface ShutterBoxPartRow {
  partName: string;    // ①전면부, ②린텔부 등
  lotPrefix: string;
  material: string;    // EGI 1.55T
  dimension: string;   // 길이 또는 치수 표시
  quantity: number;
  weight: number;
}

// 연기차단재 파트 행
export interface SmokeBarrierPartRow {
  partName: string;    // 레일용 [W50], 케이스용 [W80]
  material: string;    // EGI 0.8T
  length: number;
  quantity: number;
  weight: number;
  lotCode: string;     // GI-53, GI-54, GI-83, GI-84
}

// 생산량 합계
export interface ProductionSummary {
  susTotal: number;
  egiTotal: number;
  grandTotal: number;
}