# 문서 / 전자서명 도메인

> **모델 수**: Documents 15 + ESign 4 = 19
> **핵심**: 문서 템플릿 기반 생성, 전자결재, 전자서명

---

## 주요 테이블

### 문서 (Documents)

| 테이블 | 모델 | 역할 |
|--------|------|------|
| documents | Document | 문서 마스터 (다형 linkable) |
| document_templates | DocumentTemplate | 문서 템플릿 정의 |
| document_template_sections | DocumentTemplateSection | 템플릿 섹션 |
| document_template_section_fields | DocumentTemplateSectionField | 섹션 필드 |
| document_template_section_items | DocumentTemplateSectionItem | 체크리스트 항목 |
| document_template_field_presets | DocumentTemplateFieldPreset | 필드 프리셋 |
| document_template_approval_lines | DocumentTemplateApprovalLine | 결재선 정의 |
| document_approvals | DocumentApproval | 문서 결재 기록 |
| document_attachments | DocumentAttachment | 문서 첨부 |
| document_data | DocumentData | 문서 동적 데이터 |
| document_links | DocumentLink | 문서 링크 |

### 전자서명 (ESign)

| 테이블 | 모델 | 역할 |
|--------|------|------|
| esign_contracts | EsignContract | 전자서명 계약 |
| esign_signers | EsignSigner | 서명자 |
| esign_sign_fields | EsignSignField | 서명 필드 |
| esign_audit_logs | EsignAuditLog | 전자서명 감사 로그 |

---

## 관계 구조

```
DocumentTemplate
  ├─ hasMany DocumentTemplateSection
  │   └─ hasMany DocumentTemplateSectionField
  │       ├─ hasMany DocumentTemplateSectionItem (체크리스트)
  │       └─ hasMany DocumentTemplateFieldPreset (프리셋)
  └─ hasMany DocumentTemplateApprovalLine (결재선)

Document
  ├─ belongsTo DocumentTemplate
  ├─ morphTo linkable (Order, Quote 등에 연결)
  ├─ hasMany DocumentApproval
  ├─ hasMany DocumentAttachment
  ├─ hasMany DocumentData
  └─ hasMany DocumentLink

EsignContract
  ├─ hasMany EsignSigner
  ├─ hasMany EsignSignField
  └─ hasMany EsignAuditLog
```

---

## 특이사항

- 문서 시스템은 템플릿 기반 (Section → Field → Item 3단계)
- `Document.linkable`은 다형 관계 (Order, Quote 등에 첨부 가능)
- 전자서명은 별도 감사 로그 보유 (EsignAuditLog)
- 문서 15개 모델 중 7개가 템플릿 구조 관련