feat: [client] 거래처 API 2차 필드 추가 및 견적 계획 업데이트

- 거래처 유형(client_type), 연락처(mobile, fax), 담당자 정보 필드 추가
- 발주처 설정(account_id/password, payment_day) 필드 추가
- 약정 세금(tax_agreement, tax_amount, tax_start/end_date) 필드 추가
- 악성채권(bad_debt 관련 5개 필드) 정보 필드 추가
- Model, Service, FormRequest, Swagger 문서 업데이트
- 견적 API 계획에 문서 발송 API(email/fax/kakao) 요구사항 추가
This commit is contained in:
2025-12-04 21:13:58 +09:00
parent 96e9a0ba18
commit d164bb4c4a
7 changed files with 318 additions and 11 deletions

View File

@@ -2,7 +2,7 @@ # 견적관리 API 개발 계획서
> **작성일**: 2025-12-04
> **요청서**: `docs/front/[API-2025-12-04] quote-api-request.md`
> **상태**: 🔄 Phase 1 진행 중 → 요청 변경으로 재계획 필요
> **상태**: Phase 1 완료 → Phase 2 진행 중
---
@@ -30,9 +30,28 @@ #### 2. Model 생성 완료
- 스코프 메서드 (draft, finalized, search, dateRange 등)
- 상태 검증 메서드 (isEditable, isDeletable, isFinalizable, isConvertible)
### ⏸️ 일시 중단
- **사유**: 요청서 변경으로 계획 재수립 필요
- **다음 단계**: 변경된 요청서 확인 후 계획 비교 분석
### 🆕 변경 요청 분석 (2025-12-04)
요청서에서 **문서 발송 API (Section 3.5)**가 신규 추가됨:
| Method | Endpoint | 설명 | 비고 |
|--------|----------|------|------|
| `POST` | `/api/v1/quotes/{id}/send/email` | 이메일 발송 | 첨부파일 포함 |
| `POST` | `/api/v1/quotes/{id}/send/fax` | 팩스 발송 | 팩스 서비스 연동 |
| `POST` | `/api/v1/quotes/{id}/send/kakao` | 카카오톡 발송 | 알림톡/친구톡 |
**영향 범위:**
- Phase 2: `QuoteDocumentService` 추가 필요
- Phase 3: 문서 발송 관련 Controller 메서드 + FormRequest 추가
- Phase 4: Swagger 문서에 발송 API 추가
**개발 우선순위 조정:**
- P1: 견적 CRUD, 자동 산출, 견적번호 생성 (기존 유지)
- P2: 상태 관리, 수정 이력 (기존 유지)
- P3: 문서 출력 + **문서 발송 API** (신규 추가)
### ⏭️ 다음 단계
- Phase 2: Service Layer 구현 (QuoteService, QuoteCalculationService, QuoteNumberService)
---
@@ -272,6 +291,14 @@ ### 3.4 문서 출력 (P3 - 후순위)
| `GET` | `/api/v1/quotes/{id}/document/calculation` | 산출내역서 PDF |
| `GET` | `/api/v1/quotes/{id}/document/purchase-order` | 발주서 PDF |
### 3.5 문서 발송 (P3 - 신규 추가)
| Method | Endpoint | 설명 | 비고 |
|--------|----------|------|------|
| `POST` | `/api/v1/quotes/{id}/send/email` | 이메일 발송 | 첨부파일 포함 |
| `POST` | `/api/v1/quotes/{id}/send/fax` | 팩스 발송 | 팩스 서비스 연동 |
| `POST` | `/api/v1/quotes/{id}/send/kakao` | 카카오톡 발송 | 알림톡/친구톡 |
---
## 4. 개발 Phase 계획
@@ -303,6 +330,7 @@ ### Phase 2: 핵심 서비스 (Service Layer)
2. QuoteCalculationService - 자동산출 (FormulaEvaluator 연동)
3. QuoteNumberService - 번호채번
4. FormulaEvaluatorService 이식 (mng → api)
5. QuoteDocumentService - 문서 생성 및 발송 (신규 추가)
**파일 목록:**
```
@@ -310,12 +338,15 @@ ### Phase 2: 핵심 서비스 (Service Layer)
├── QuoteService.php
├── QuoteCalculationService.php
├── QuoteNumberService.php
├── QuoteDocumentService.php (신규 - 문서 생성/발송)
└── FormulaEvaluatorService.php (mng에서 이식)
```
**의존성:**
- PricingService (단가 조회)
- ClientService (발주처 연동)
- MailService (이메일 발송)
- NotificationService (카카오톡/팩스 발송)
### Phase 3: API 구현 (Controller + Routes)
@@ -323,6 +354,7 @@ ### Phase 3: API 구현 (Controller + Routes)
1. QuoteController 구현
2. FormRequest 생성 (검증 규칙)
3. 라우트 추가
4. 문서 발송 엔드포인트 추가 (신규)
**파일 목록:**
```
@@ -334,7 +366,10 @@ ### Phase 3: API 구현 (Controller + Routes)
├── QuoteStoreRequest.php
├── QuoteUpdateRequest.php
├── QuoteCalculateRequest.php
── QuoteFinalizeRequest.php
── QuoteFinalizeRequest.php
├── QuoteSendEmailRequest.php (신규)
├── QuoteSendFaxRequest.php (신규)
└── QuoteSendKakaoRequest.php (신규)
routes/
└── api_v1.php (라우트 추가)
@@ -417,9 +452,9 @@ ## 6. 예상 산출물 요약
|------|------|------|
| 마이그레이션 | 3개 | quotes, quote_items, quote_revisions |
| Model | 3개 | Quote, QuoteItem, QuoteRevision |
| Service | 4개 | QuoteService, QuoteCalculationService, QuoteNumberService, FormulaEvaluatorService |
| Service | 5개 | QuoteService, QuoteCalculationService, QuoteNumberService, FormulaEvaluatorService, **QuoteDocumentService** |
| Controller | 1개 | QuoteController |
| FormRequest | 5개 | Index, Store, Update, Calculate, Finalize |
| FormRequest | 8개 | Index, Store, Update, Calculate, Finalize, **SendEmail, SendFax, SendKakao** |
| Swagger | 1개 | QuoteApi.php |
| i18n | 2개 | message.php, error.php (키 추가) |
@@ -446,7 +481,11 @@ ### Q3. 문서 출력 PDF 라이브러리
- 대안: Dompdf (HTML → PDF 변환)
### Q4. 알림 (이메일/카카오톡)
**답변:** 현재 요구사항에 없음, 추후 확장 가능
**답변:** ✅ 요청서 Section 3.5에 신규 추가됨
- 이메일 발송: `POST /api/v1/quotes/{id}/send/email`
- 팩스 발송: `POST /api/v1/quotes/{id}/send/fax`
- 카카오톡 발송: `POST /api/v1/quotes/{id}/send/kakao`
- P3 우선순위로 문서 출력과 함께 개발 예정
---