# 생산 / 시공 / 자재 / 품질 도메인

> **모델 수**: Production 8 + Construction 5 + Materials 4 + Qualitys 3 = 20
> **핵심**: 작업지시, 공정 관리, 자재/LOT 추적, 품질 검사

---

## 주요 테이블

### 생산 (Production)

| 테이블 | 모델 | 역할 |
|--------|------|------|
| work_orders | WorkOrder | 작업지시 마스터 |
| work_order_items | WorkOrderItem | 작업지시 항목 (options JSON) |
| work_order_step_progress | WorkOrderStepProgress | 단계별 진행 추적 |
| work_order_bending_details | WorkOrderBendingDetail | 절곡 상세 사양 |
| work_order_assignees | WorkOrderAssignee | 작업자 배정 |
| work_order_issues | WorkOrderIssue | 작업 이슈 기록 |
| work_results | WorkResult | 작업실적 |
| work_order_material_inputs | WorkOrderMaterialInput | 자재 투입 기록 |

### 시공 (Construction)

| 테이블 | 모델 | 역할 |
|--------|------|------|
| contracts | Contract | 시공 계약 |
| handover_reports | HandoverReport | 인수인계 보고서 |
| handover_report_managers | HandoverReportManager | 인수인계 담당자 |
| structure_reviews | StructureReview | 구조 검토 |

### 자재 (Materials)

| 테이블 | 모델 | 역할 |
|--------|------|------|
| materials | Material | 자재 마스터 |
| material_receipts | MaterialReceipt | 자재 입고 |
| material_inspections | MaterialInspection | 수입검사 마스터 |
| material_inspection_items | MaterialInspectionItem | 수입검사 항목 |

### 품질 (Qualitys)

| 테이블 | 모델 | 역할 |
|--------|------|------|
| inspections | Inspection | 검사 마스터 |
| lots | Lot | LOT 관리 |
| lot_sales | LotSale | LOT 출고 |

---

## 관계 구조

```
WorkOrder (작업지시)
  ├─ belongsTo Order
  ├─ belongsTo Process (공정)
  ├─ belongsTo Department (담당 팀)
  ├─ hasMany WorkOrderItem
  │   ├─ options: JSON { floor, code, width, height, slat_info, bending_info }
  │   └─ hasMany WorkOrderMaterialInput
  ├─ hasMany WorkOrderStepProgress
  ├─ hasMany WorkOrderBendingDetail
  ├─ hasMany WorkOrderAssignee
  ├─ hasMany WorkOrderIssue
  └─ hasMany WorkResult

Material
  ├─ belongsTo Category
  ├─ hasMany MaterialReceipt
  ├─ hasMany Lot
  └─ morphMany File

Inspection
  ├─ belongsTo WorkOrder (또는 MaterialReceipt)
  └─ hasMany InspectionItem
```

---

## WorkOrderItem options JSON 구조

```json
{
  "floor": "1F",
  "code": "SL-001",
  "width": 1200,
  "height": 800,
  "cutting_info": { ... },
  "slat_info": { "joint_bar": 2, "glass_qty": 10 },
  "bending_info": { ... },
  "wip_info": { ... }
}
```

- OrderItem.options에서 복사됨 (width 직접 접근 가능)
- 조인트바 자동계산: `createWorkOrders()` 에서 처리

---

## LOT 관리 흐름

```
Material → MaterialReceipt (입고)
               │
          MaterialInspection (수입검사)
               │
            Lot (LOT 생성)
               │
         WorkOrderMaterialInput (투입)
               │
           LotSale (출고)
```