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:
@@ -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 우선순위로 문서 출력과 함께 개발 예정
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user