# 변경 내용 요약

**날짜:** 2026-01-28
**작업자:** Claude Code
**작업명:** 문서 관리 시스템 Phase 1.1 - 마이그레이션 파일 생성

## 📋 변경 개요

문서 관리 시스템의 데이터베이스 스키마를 구현했습니다.
- 4개 테이블 신규 생성 (documents, document_approvals, document_data, document_attachments)
- SAM API 개발 규칙 준수 (tenant_id, 감사 컬럼, softDeletes, comment)

## 📁 추가된 파일

| 파일 | 설명 |
|------|------|
| `api/database/migrations/2026_01_28_200000_create_documents_table.php` | 문서 관리 테이블 마이그레이션 |

## 🔧 상세 변경 사항

### 1. documents 테이블 (16 컬럼)
실제 문서 정보를 저장하는 메인 테이블

| 컬럼 | 타입 | 설명 |
|------|------|------|
| id | bigint | PK |
| tenant_id | bigint | 테넌트 ID (FK) |
| template_id | bigint | 템플릿 ID (FK → document_templates) |
| document_no | varchar(50) | 문서번호 |
| title | varchar(255) | 문서 제목 |
| status | enum | DRAFT/PENDING/APPROVED/REJECTED/CANCELLED |
| linkable_type | varchar(100) | 연결 모델 타입 (다형성) |
| linkable_id | bigint | 연결 모델 ID |
| submitted_at | timestamp | 결재 요청일 |
| completed_at | timestamp | 결재 완료일 |
| created_by | bigint | 생성자 ID |
| updated_by | bigint | 수정자 ID |
| deleted_by | bigint | 삭제자 ID |
| created_at | timestamp | 생성일 |
| updated_at | timestamp | 수정일 |
| deleted_at | timestamp | 삭제일 (Soft Delete) |

### 2. document_approvals 테이블 (12 컬럼)
문서 결재 정보 저장

| 컬럼 | 타입 | 설명 |
|------|------|------|
| id | bigint | PK |
| document_id | bigint | 문서 ID (FK) |
| user_id | bigint | 결재자 ID (FK) |
| step | tinyint | 결재 순서 |
| role | varchar(50) | 역할 (작성/검토/승인) |
| status | enum | PENDING/APPROVED/REJECTED |
| comment | text | 결재 의견 |
| acted_at | timestamp | 결재 처리일 |
| created_by | bigint | 생성자 ID |
| updated_by | bigint | 수정자 ID |
| created_at | timestamp | 생성일 |
| updated_at | timestamp | 수정일 |

### 3. document_data 테이블 (9 컬럼)
문서 데이터 저장 (EAV 패턴)

| 컬럼 | 타입 | 설명 |
|------|------|------|
| id | bigint | PK |
| document_id | bigint | 문서 ID (FK) |
| section_id | bigint | 섹션 ID |
| column_id | bigint | 컬럼 ID |
| row_index | smallint | 행 인덱스 |
| field_key | varchar(100) | 필드 키 |
| field_value | text | 필드 값 |
| created_at | timestamp | 생성일 |
| updated_at | timestamp | 수정일 |

### 4. document_attachments 테이블 (8 컬럼)
문서 첨부파일 연결

| 컬럼 | 타입 | 설명 |
|------|------|------|
| id | bigint | PK |
| document_id | bigint | 문서 ID (FK) |
| file_id | bigint | 파일 ID (FK → files) |
| attachment_type | varchar(50) | 첨부 유형 |
| description | varchar(255) | 설명 |
| created_by | bigint | 생성자 ID |
| created_at | timestamp | 생성일 |
| updated_at | timestamp | 수정일 |

## ✅ 검증 결과

| 시나리오 | 예상 결과 | 실제 결과 | 상태 |
|----------|----------|----------|:----:|
| 마이그레이션 실행 | 4개 테이블 생성 | 4개 테이블 생성 | ✅ |
| PHP 문법 검사 | 오류 없음 | 오류 없음 | ✅ |
| Pint 포맷팅 | 통과 | 1개 스타일 수정 후 통과 | ✅ |
| SAM 규칙 준수 | 모든 규칙 적용 | 모든 규칙 적용 | ✅ |

## 🔗 관련 문서

- 계획 문서: `docs/dev_plans/document-management-system-plan.md`
- 다음 작업: Phase 1.2 - 모델 생성 (Document, DocumentApproval, DocumentData, DocumentAttachment)

## ⚠️ 배포 시 주의사항

특이사항 없음 (마이그레이션은 이미 실행됨)