docs: 기획 문서 추가
- 문서관리 1단계 변경사항 (20260128_document_management_phase1_1.md) - FCM 사용자 타겟 알림 계획 - 수입검사 문서 통합 계획 - 품목 마이그레이션 계획 (경동) - 수주 마이그레이션 계획 (경동) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
106
changes/20260128_document_management_phase1_1.md
Normal file
106
changes/20260128_document_management_phase1_1.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# 변경 내용 요약
|
||||
|
||||
**날짜:** 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/plans/document-management-system-plan.md`
|
||||
- 다음 작업: Phase 1.2 - 모델 생성 (Document, DocumentApproval, DocumentData, DocumentAttachment)
|
||||
|
||||
## ⚠️ 배포 시 주의사항
|
||||
|
||||
특이사항 없음 (마이그레이션은 이미 실행됨)
|
||||
Reference in New Issue
Block a user