- 개발팀 전용 폴더 dev/ 생성 (standards, guides, quickstart, changes, deploys, data, history, dev_plans 이동) - 프론트엔드 전용 폴더 frontend/ 생성 (api/ → frontend/api-specs/) - 기획팀 폴더 requests/ 생성 - plans/ → dev/dev_plans/ 이름 변경 - README.md 신규 (사람용 안내), INDEX.md 재작성 (Claude Code용) - resources.md 신규 (노션 링크용, assets/brochure 이관 예정) - CURRENT_WORKS.md 삭제, TODO.md → dev/ 이동 - 전체 참조 경로 업데이트 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
559 lines
20 KiB
Markdown
559 lines
20 KiB
Markdown
# SAM ERP API 개발 작업 계획 - D1.0 변경사항
|
|
|
|
> **작성일**: 2025-12-19
|
|
> **기준 문서**: SAM_ERP_Storyboard_D1.0_251218 (38페이지)
|
|
> **이전 버전**: SAM_ERP_Storyboard_D0.8_251216 (85페이지)
|
|
> **상태**: ✅ Phase 5 완료 | ✅ Phase 6 완료 | ✅ Phase 7 완료 | ✅ Phase 8 완료
|
|
|
|
---
|
|
|
|
## 📚 참고 문서
|
|
|
|
### 핵심 참고 문서
|
|
| 문서 | 경로 | 용도 |
|
|
|------|------|------|
|
|
| **기존 개발 계획** | [`erp-api-development-plan.md`](./erp-api-development-plan.md) | D0.8 기준 Phase 1-4 |
|
|
| **개발 공통 정책** | [`../guides/PROJECT_DEVELOPMENT_POLICY.md`](../guides/PROJECT_DEVELOPMENT_POLICY.md) | 개발 표준 및 정책 |
|
|
| **D0.8 스토리보드** | [`SAM_ERP_Storyboard_D0.8_251216/`](./SAM_ERP_Storyboard_D0.8_251216/) | 이전 버전 UI 참조 |
|
|
| **D1.0 스토리보드** | [`SAM_ERP_Storyboard_D1.0_251218/`](./SAM_ERP_Storyboard_D1.0_251218/) | 최신 UI/UX 참조 |
|
|
|
|
### 기존 코드 참조
|
|
| 항목 | 경로 | 상태 |
|
|
|------|------|------|
|
|
| `Board` 모델 | `api/app/Models/Boards/Board.php` | ✅ 존재 |
|
|
| `BoardSetting` 모델 | `api/app/Models/Boards/BoardSetting.php` | ✅ 존재 |
|
|
| `BoardComment` 모델 | `api/app/Models/Boards/BoardComment.php` | ✅ 존재 |
|
|
| `Plan` 모델 | `api/app/Models/Tenants/Plan.php` | ✅ 존재 |
|
|
| `Subscription` 모델 | `api/app/Models/Tenants/Subscription.php` | ✅ 존재 |
|
|
| `PushNotificationSetting` | `api/app/Models/PushNotificationSetting.php` | ✅ 존재 |
|
|
|
|
---
|
|
|
|
## 📊 D1.0 개발 범위 요약
|
|
|
|
| Phase | 구분 | 항목수 | 신규 테이블 | API 수 | 상태 |
|
|
|-------|------|--------|------------|--------|------|
|
|
| Phase 5 | 기본 확장 | 4개 | 1개 | ~14개 | ✅ 완료 |
|
|
| Phase 6 | 핵심 신규 | 2개 | 4개 | ~17개 | ✅ 완료 |
|
|
| Phase 7 | 게시판 연동 | 2개 | 0개 | ~15개 | ✅ 완료 |
|
|
| Phase 8 | SaaS 확장 | 3개 | 1개 | ~10개 | ✅ 완료 |
|
|
| **합계** | | **12개** | **~5개** | **~71개** | |
|
|
|
|
---
|
|
|
|
## 🚀 Phase 5: D1.0 기본 확장 ✅ 완료
|
|
|
|
> 기존 테이블/모델 활용, API 추가 중심
|
|
> **완료일: 2025-12-22** (기존 구현 확인)
|
|
|
|
### 5.1 사용자 초대 기능 ✅
|
|
> 슬라이드: 2 | 경로: 인사관리 > 사원관리 > 사용자 초대
|
|
> **완료일: 2025-12-19**
|
|
|
|
- [x] **테이블 생성**
|
|
- [x] `user_invitations` 마이그레이션 (2025_12_19_100001)
|
|
- [x] 마이그레이션 실행 및 검증
|
|
|
|
- [x] **모델 생성**
|
|
- [x] `UserInvitation` 모델 (BelongsToTenant)
|
|
- [x] 관계 정의 (inviter, role, tenant)
|
|
- [x] 토큰 생성 헬퍼 (`generateToken()`)
|
|
- [x] 상태 상수 (pending, accepted, expired, cancelled)
|
|
|
|
- [x] **서비스 구현**
|
|
- [x] `UserInvitationService` 생성
|
|
- [x] 이메일 초대 발송 로직 (`invite()`)
|
|
- [x] 초대 수락 로직 (`accept()`)
|
|
- [x] 토큰 만료 처리 (`expirePendingInvitations()`)
|
|
- [x] 초대 재발송 로직 (`resend()`)
|
|
|
|
- [x] **API 엔드포인트** (5개)
|
|
- [x] `POST /v1/users/invite` - 사용자 초대 (이메일 발송)
|
|
- [x] `GET /v1/users/invitations` - 초대 목록
|
|
- [x] `POST /v1/users/invitations/{token}/accept` - 초대 수락
|
|
- [x] `DELETE /v1/users/invitations/{id}` - 초대 취소
|
|
- [x] `POST /v1/users/invitations/{id}/resend` - 초대 재발송
|
|
|
|
- [x] **Swagger 문서**
|
|
- [x] `UserInvitationApi.php` 작성
|
|
- [x] 스키마 정의 (UserInvitation, InviteRequest, AcceptRequest)
|
|
|
|
- [ ] **테스트**
|
|
- [ ] Feature 테스트 작성
|
|
- [ ] 수동 API 테스트
|
|
|
|
---
|
|
|
|
### 5.2 알림설정 확장 ✅
|
|
> 슬라이드: 19-22 | 경로: 기준정보 > 알림설정
|
|
> **완료일: 2025-12-19**
|
|
|
|
- [x] **테이블 확장**
|
|
- [x] `notification_settings` 테이블 확인/생성
|
|
|
|
- [x] **모델 생성/수정**
|
|
- [x] `NotificationSetting` 모델 (BelongsToTenant)
|
|
- [x] 카테고리별 그룹화 메서드
|
|
|
|
- [x] **서비스 구현**
|
|
- [x] `NotificationSettingService` 생성
|
|
- [x] 카테고리별 조회/수정 로직
|
|
- [x] 사용자별 기본값 생성 로직
|
|
|
|
- [x] **API 엔드포인트** (3개)
|
|
- [x] `GET /v1/users/me/notification-settings` - 알림 설정 조회
|
|
- [x] `PUT /v1/users/me/notification-settings` - 알림 설정 수정
|
|
- [x] `PUT /v1/users/me/notification-settings/bulk` - 알림 일괄 설정
|
|
|
|
- [x] **Swagger 문서**
|
|
- [x] `NotificationSettingApi.php` 작성
|
|
|
|
- [ ] **테스트**
|
|
- [ ] Feature 테스트 작성
|
|
- [ ] 수동 API 테스트
|
|
|
|
---
|
|
|
|
### 5.3 계정정보 수정 (탈퇴/사용중지) ✅
|
|
> 슬라이드: 24 | 경로: 계정정보
|
|
> **완료일: 2025-12-19**
|
|
|
|
- [x] **서비스 구현**
|
|
- [x] `AccountService` 생성/확장
|
|
- [x] 회원 탈퇴 로직 (`withdraw()`)
|
|
- [x] 사용 중지 로직 (`suspend()`)
|
|
- [x] 약관 동의 정보 관리 (`getAgreements()`, `updateAgreements()`)
|
|
|
|
- [x] **API 엔드포인트** (4개)
|
|
- [x] `POST /v1/account/withdraw` - 회원 탈퇴
|
|
- [x] `POST /v1/account/suspend` - 사용 중지 (특정 테넌트)
|
|
- [x] `GET /v1/account/agreements` - 약관 동의 정보 조회
|
|
- [x] `PUT /v1/account/agreements` - 약관 동의 정보 수정
|
|
|
|
- [x] **Swagger 문서**
|
|
- [x] `AccountApi.php` 확장
|
|
|
|
- [ ] **테스트**
|
|
- [ ] Feature 테스트 작성
|
|
- [ ] 수동 API 테스트
|
|
|
|
---
|
|
|
|
### 5.4 매출 상세 확장 (거래명세서) ✅
|
|
> 슬라이드: 9 | 경로: 회계관리 > 매출관리 > 매출 상세
|
|
> **완료일: 2025-12-19**
|
|
|
|
**기존 구성요소:**
|
|
- `Sale` 모델, `SaleService` 존재
|
|
- `TaxInvoice` 모델 존재 (세금계산서)
|
|
|
|
- [x] **서비스 확장**
|
|
- [x] `SaleService` 확장
|
|
- [x] 거래명세서 조회 로직 (`getStatement()`)
|
|
- [x] 거래명세서 발행 로직 (`issueStatement()`)
|
|
- [x] 거래명세서 이메일 발송 로직 (`sendStatement()`)
|
|
|
|
- [x] **API 엔드포인트** (3개)
|
|
- [x] `GET /v1/sales/{id}/statement` - 거래명세서 조회
|
|
- [x] `POST /v1/sales/{id}/statement/issue` - 거래명세서 발행
|
|
- [x] `POST /v1/sales/{id}/statement/send` - 거래명세서 이메일 발송
|
|
|
|
- [x] **Swagger 문서**
|
|
- [x] `SaleApi.php` 확장 (거래명세서 관련 추가)
|
|
|
|
- [ ] **테스트**
|
|
- [ ] Feature 테스트 작성
|
|
- [ ] 수동 API 테스트
|
|
|
|
---
|
|
|
|
## 🔨 Phase 6: D1.0 핵심 신규 개발 (예상 2-3주)
|
|
|
|
> 신규 테이블 + API 전체 신규 구현
|
|
|
|
### 6.1 악성채권 추심관리 ✅
|
|
> 슬라이드: 10-13 | 경로: 회계관리 > 악성채권 추심관리
|
|
> **완료일: 2025-12-19** (commit: c0af888)
|
|
|
|
- [x] **테이블 생성** (3개)
|
|
- [x] `bad_debts` 마이그레이션 (2025_12_19_160001)
|
|
- [x] `bad_debt_documents` 마이그레이션 (2025_12_19_160002)
|
|
- [x] `bad_debt_memos` 마이그레이션 (2025_12_19_160003)
|
|
- [x] 마이그레이션 실행 및 검증
|
|
|
|
- [x] **모델 생성** (3개)
|
|
- [x] `BadDebt` 모델 (BelongsToTenant, SoftDeletes)
|
|
- 상태 상수: collecting, legal_action, recovered, bad_debt
|
|
- 관계: client, assignedUser, creator, documents, memos
|
|
- [x] `BadDebtDocument` 모델
|
|
- 문서 유형: business_license, tax_invoice, additional
|
|
- [x] `BadDebtMemo` 모델
|
|
|
|
- [x] **서비스 구현**
|
|
- [x] `BadDebtService` 생성 (307줄)
|
|
- [x] 악성채권 등록/수정/삭제 로직
|
|
- [x] 상태 전이 로직 (추심중→법적조치→회수완료/대손처리)
|
|
- [x] 요약 통계 (총 채권, 상태별 금액)
|
|
- [x] 서류 첨부/삭제 로직
|
|
- [x] 메모 추가/삭제 로직
|
|
|
|
- [x] **API 엔드포인트** (11개)
|
|
- [x] `GET /v1/bad-debts` - 악성채권 목록
|
|
- [x] `POST /v1/bad-debts` - 악성채권 등록
|
|
- [x] `GET /v1/bad-debts/summary` - 상단 요약 (총 채권, 상태별 금액)
|
|
- [x] `GET /v1/bad-debts/{id}` - 악성채권 상세
|
|
- [x] `PUT /v1/bad-debts/{id}` - 악성채권 수정
|
|
- [x] `DELETE /v1/bad-debts/{id}` - 악성채권 삭제
|
|
- [x] `PATCH /v1/bad-debts/{id}/toggle` - 설정 ON/OFF
|
|
- [x] `POST /v1/bad-debts/{id}/documents` - 서류 첨부
|
|
- [x] `DELETE /v1/bad-debts/{id}/documents/{docId}` - 서류 삭제
|
|
- [x] `POST /v1/bad-debts/{id}/memos` - 메모 추가
|
|
- [x] `DELETE /v1/bad-debts/{id}/memos/{memoId}` - 메모 삭제
|
|
|
|
- [x] **Swagger 문서**
|
|
- [x] `BadDebtApi.php` 작성 (433줄)
|
|
- [x] 스키마 정의 (BadDebt, BadDebtDocument, BadDebtMemo, Summary)
|
|
|
|
- [ ] **테스트**
|
|
- [ ] Feature 테스트 작성
|
|
- [ ] 수동 API 테스트
|
|
|
|
---
|
|
|
|
### 6.2 팝업관리 ✅
|
|
> 슬라이드: 15-16 | 경로: 기준정보 > 팝업관리
|
|
> **완료일: 2025-12-19**
|
|
|
|
- [x] **테이블 생성** (1개)
|
|
- [x] `popups` 마이그레이션
|
|
```sql
|
|
-- popups (팝업)
|
|
id, tenant_id, target_type, target_id,
|
|
title, content, status,
|
|
started_at, ended_at, options,
|
|
created_by, updated_by, deleted_by,
|
|
created_at, updated_at, deleted_at
|
|
```
|
|
- [x] 마이그레이션 실행 및 검증
|
|
|
|
- [x] **모델 생성**
|
|
- [x] `Popup` 모델 (BelongsToTenant, SoftDeletes)
|
|
- target_type: all, department
|
|
- status: active, inactive
|
|
- 활성 팝업 스코프 (기간 + 상태 체크)
|
|
|
|
- [x] **서비스 구현**
|
|
- [x] `PopupService` 생성
|
|
- [x] 팝업 CRUD 로직
|
|
- [x] 활성 팝업 조회 로직 (로그인 후 노출용)
|
|
- [x] 기간 유효성 검사 로직
|
|
|
|
- [x] **API 엔드포인트** (6개)
|
|
- [x] `GET /v1/popups` - 팝업 목록 (관리자용)
|
|
- [x] `POST /v1/popups` - 팝업 등록
|
|
- [x] `GET /v1/popups/active` - 활성 팝업 목록 (사용자용)
|
|
- [x] `GET /v1/popups/{id}` - 팝업 상세
|
|
- [x] `PUT /v1/popups/{id}` - 팝업 수정
|
|
- [x] `DELETE /v1/popups/{id}` - 팝업 삭제
|
|
|
|
- [x] **Swagger 문서**
|
|
- [x] `PopupApi.php` 작성
|
|
|
|
- [ ] **테스트**
|
|
- [ ] Feature 테스트 작성
|
|
- [ ] 수동 API 테스트
|
|
|
|
---
|
|
|
|
## 📋 Phase 7: D1.0 게시판 연동 ✅ 완료
|
|
> **완료일: 2025-12-19**
|
|
|
|
> 기존 Board 모델 활용, API 엔드포인트 추가
|
|
|
|
**기존 구성요소 (api 프로젝트):**
|
|
- `Board` 모델: is_system, board_type, board_code, name, extra_settings
|
|
- `BoardSetting` 모델: 커스텀 필드 정의
|
|
- `BoardComment` 모델: 댓글
|
|
- `Post` 모델: 게시글
|
|
|
|
### 7.1 게시판관리 ✅
|
|
> 슬라이드: 17-18 | 경로: 기준정보 > 게시판관리
|
|
> **완료일: 2025-12-19** (기존 구현 활용)
|
|
|
|
- [x] **기존 모델 확인/확장**
|
|
- [x] `Board` 모델 확인
|
|
- [x] `BoardSetting` 모델 확인
|
|
- [x] 필요 필드 이미 존재
|
|
|
|
- [x] **서비스 구현**
|
|
- [x] `BoardService` 존재 (테넌트별 게시판 CRUD 로직)
|
|
|
|
- [x] **API 엔드포인트** (5개)
|
|
- [x] `GET /v1/boards` - 게시판 목록
|
|
- [x] `POST /v1/boards` - 게시판 생성
|
|
- [x] `GET /v1/boards/{id}` - 게시판 상세
|
|
- [x] `PUT /v1/boards/{id}` - 게시판 수정
|
|
- [x] `DELETE /v1/boards/{id}` - 게시판 삭제
|
|
|
|
- [x] **Swagger 문서**
|
|
- [x] `BoardApi.php` 작성 완료
|
|
|
|
---
|
|
|
|
### 7.2 게시판 (사용자용) ✅
|
|
> 슬라이드: 3-7 | 경로: 게시판
|
|
> **완료일: 2025-12-19**
|
|
|
|
- [x] **기존 모델 확인/확장**
|
|
- [x] `Post` 모델 확인
|
|
- [x] 상단 노출 필드 (is_notice)
|
|
- [x] 조회수 필드 (views)
|
|
|
|
- [x] **서비스 구현**
|
|
- [x] `PostService` 존재
|
|
- [x] 게시글 CRUD 로직
|
|
- [x] 상단 노출 로직
|
|
- [x] 조회수 증가 로직
|
|
- [x] 나의 게시글 조회 로직 ✅ 추가됨
|
|
|
|
- [x] **API 엔드포인트** (10개)
|
|
- [x] `GET /v1/boards` - 게시판 목록 (탭용)
|
|
- [x] `GET /v1/boards/{code}/posts` - 게시글 목록
|
|
- [x] `POST /v1/boards/{code}/posts` - 게시글 등록
|
|
- [x] `GET /v1/boards/{code}/posts/{id}` - 게시글 상세
|
|
- [x] `PUT /v1/boards/{code}/posts/{id}` - 게시글 수정
|
|
- [x] `DELETE /v1/boards/{code}/posts/{id}` - 게시글 삭제
|
|
- [x] `GET /v1/posts/my` - 나의 게시글 ✅ 신규 추가
|
|
- [x] `GET /v1/boards/{code}/posts/{id}/comments` - 댓글 목록
|
|
- [x] `POST /v1/boards/{code}/posts/{id}/comments` - 댓글 등록
|
|
- [x] `PUT /v1/boards/{code}/posts/{id}/comments/{commentId}` - 댓글 수정
|
|
- [x] `DELETE /v1/boards/{code}/posts/{id}/comments/{commentId}` - 댓글 삭제
|
|
|
|
- [x] **Swagger 문서**
|
|
- [x] `BoardApi.php` 작성 완료
|
|
- [x] `PostApi.php` 작성 완료
|
|
|
|
---
|
|
|
|
### 7.3 고객센터 → 게시판관리로 대체 ⏭️
|
|
> 슬라이드: 30-38 | 경로: 고객센터
|
|
|
|
**결정사항:** 고객센터 기능은 기존 게시판관리 시스템으로 구현
|
|
- 공지사항, 이벤트, FAQ, 1:1 문의 → 게시판 유형(board_code)으로 관리
|
|
- 별도 SupportAPI 불필요, 기존 Board/Post API 활용
|
|
|
|
---
|
|
|
|
## 💼 Phase 8: D1.0 SaaS 확장 (예상 1-2주)
|
|
|
|
> 기존 Plan/Subscription/Payment 모델 활용
|
|
|
|
### 8.1 구독관리 ✅
|
|
> 슬라이드: 28 | 경로: 구독관리
|
|
> **완료일: 2025-12-22** (기존 구현 확인)
|
|
|
|
**기존 구성요소:**
|
|
- `Plan` 모델: name, code, price, features(json)
|
|
- `Subscription` 모델: tenant_id, plan_id, started_at, ended_at, status
|
|
- `DataExport` 모델: 데이터 내보내기
|
|
|
|
- [x] **서비스 확장**
|
|
- [x] `SubscriptionService` 확장 (432줄)
|
|
- [x] 현재 구독 정보 조회 로직 (`current()`)
|
|
- [x] 사용량 조회 로직 (`usage()`)
|
|
- [x] 자료 내보내기 로직 (`createExport()`, `getExport()`)
|
|
- [x] 서비스 해지 로직 (`cancel()`)
|
|
|
|
- [x] **API 엔드포인트** (5개 + 추가 6개)
|
|
- [x] `GET /v1/subscriptions/current` - 현재 구독 정보
|
|
- [x] `GET /v1/subscriptions/usage` - 사용량 조회
|
|
- [x] `POST /v1/subscriptions/export` - 자료 내보내기 요청
|
|
- [x] `GET /v1/subscriptions/export/{id}` - 내보내기 상태 조회
|
|
- [x] `POST /v1/subscriptions/{id}/cancel` - 서비스 해지
|
|
- [x] `GET /v1/subscriptions` - 구독 목록 (추가)
|
|
- [x] `POST /v1/subscriptions` - 구독 등록 (추가)
|
|
- [x] `GET /v1/subscriptions/{id}` - 구독 상세 (추가)
|
|
- [x] `POST /v1/subscriptions/{id}/renew` - 구독 갱신 (추가)
|
|
- [x] `POST /v1/subscriptions/{id}/suspend` - 일시정지 (추가)
|
|
- [x] `POST /v1/subscriptions/{id}/resume` - 재개 (추가)
|
|
|
|
- [x] **Swagger 문서**
|
|
- [x] `SubscriptionApi.php` 작성 (526줄)
|
|
|
|
- [ ] **테스트**
|
|
- [ ] Feature 테스트 작성
|
|
- [ ] 수동 API 테스트
|
|
|
|
---
|
|
### 8.2 결제내역 ✅
|
|
> 슬라이드: 29 | 경로: 결제내역
|
|
> **완료일: 2025-12-22** (기존 구현 확인)
|
|
|
|
**기존 구성요소:**
|
|
- `Payment` 모델: subscription_id, amount, payment_method, paid_at, status
|
|
|
|
- [x] **서비스 확장**
|
|
- [x] `PaymentService` 확장 (357줄)
|
|
- [x] 결제 내역 목록 조회 로직 (`index()`)
|
|
- [x] 거래명세서 생성 로직 (`statement()`)
|
|
- [x] 결제 요약 통계 (`summary()`)
|
|
|
|
- [x] **API 엔드포인트** (2개 + 추가 6개)
|
|
- [x] `GET /v1/payments` - 결제 내역 목록
|
|
- [x] `GET /v1/payments/{id}/statement` - 거래명세서 조회
|
|
- [x] `GET /v1/payments/summary` - 결제 요약 통계 (추가)
|
|
- [x] `GET /v1/payments/{id}` - 결제 상세 (추가)
|
|
- [x] `POST /v1/payments` - 결제 등록 (추가)
|
|
- [x] `POST /v1/payments/{id}/complete` - 완료 처리 (추가)
|
|
- [x] `POST /v1/payments/{id}/cancel` - 취소 (추가)
|
|
- [x] `POST /v1/payments/{id}/refund` - 환불 (추가)
|
|
|
|
- [x] **Swagger 문서**
|
|
- [x] `PaymentApi.php` 작성 (455줄)
|
|
|
|
- [ ] **테스트**
|
|
- [ ] Feature 테스트 작성
|
|
- [ ] 수동 API 테스트
|
|
|
|
---
|
|
|
|
### 8.3 회사 추가 ✅
|
|
> 슬라이드: 25-27 | 경로: 회사정보
|
|
> **완료일: 2025-12-22**
|
|
|
|
- [x] **테이블 생성** (1개)
|
|
- [x] `company_requests` 마이그레이션
|
|
```sql
|
|
-- company_requests (회사 추가 신청)
|
|
id, user_id, business_number, company_name, ceo_name,
|
|
address, phone, email, status, message, reject_reason,
|
|
barobill_response(json), approved_by, created_tenant_id,
|
|
processed_at, created_at, updated_at
|
|
```
|
|
- [x] 마이그레이션 실행 및 검증
|
|
|
|
- [x] **모델 생성**
|
|
- [x] `CompanyRequest` 모델
|
|
- 상태 상수: pending, approved, rejected
|
|
- 관계: user, approver, createdTenant
|
|
- 스코프: pending(), approved(), rejected()
|
|
|
|
- [x] **서비스 구현**
|
|
- [x] `CompanyService` 생성
|
|
- [x] 사업자등록번호 유효성 검사 (바로빌 연동 + 체크섬 검증)
|
|
- [x] 회사 추가 신청 로직
|
|
- [x] 신청 승인 로직 (테넌트 자동 생성 + 사용자 연결)
|
|
- [x] 신청 반려 로직
|
|
- [x] 신청 목록 조회 (관리자용/사용자용)
|
|
|
|
- [x] **API 엔드포인트** (7개)
|
|
- [x] `POST /v1/companies/check` - 사업자등록번호 유효성 검사
|
|
- [x] `POST /v1/companies/request` - 회사 추가 신청
|
|
- [x] `GET /v1/companies/requests` - 신청 목록 (관리자용)
|
|
- [x] `GET /v1/companies/requests/{id}` - 신청 상세
|
|
- [x] `POST /v1/companies/requests/{id}/approve` - 승인
|
|
- [x] `POST /v1/companies/requests/{id}/reject` - 반려
|
|
- [x] `GET /v1/companies/my-requests` - 내 신청 목록
|
|
|
|
- [x] **Swagger 문서**
|
|
- [x] `CompanyApi.php` 작성
|
|
|
|
- [ ] **테스트**
|
|
- [ ] Feature 테스트 작성
|
|
- [ ] 수동 API 테스트
|
|
|
|
---
|
|
|
|
## 📋 기획 확인 필요 항목
|
|
|
|
> ⚠️ API 구현 전 비즈니스 로직 확정 필요
|
|
|
|
### D1.0 신규 확인 필요
|
|
- [ ] 사용자 초대 시 권한 범위 (테넌트 단위 vs 전사)
|
|
- [ ] 악성채권 자동 판정 조건 (연체일수 기준, 기본 90일?)
|
|
- [ ] 팝업 노출 우선순위 (복수 팝업 시)
|
|
- [ ] 서비스 해지 시 데이터 보관 기간
|
|
- [ ] 자료 내보내기 포맷 (Excel, CSV, JSON)
|
|
- [ ] 상단 노출 게시글 최대 개수 (기본 5개)
|
|
- [ ] 1:1 문의 상담분류 목록 (문의하기, 신고하기, 건의사항, 서비스 오류)
|
|
|
|
### 기존 확인 사항 (D0.8)
|
|
- [ ] 테넌트: 신청→승인→만료→해지 전이 조건
|
|
- [ ] 전자결재→회계: 지출결의서 승인 시 출금 자동 생성?
|
|
- [ ] 바로빌 API 비용 확인
|
|
|
|
---
|
|
|
|
## 📝 작업 일지
|
|
|
|
### 2025-12-19
|
|
- [x] D1.0 스토리보드 분석 완료 (38페이지)
|
|
- [x] D0.8 대비 변경사항 식별 (신규 8개, 수정 4개)
|
|
- [x] D1.0 개발 계획 문서 작성 (Phase 5-8)
|
|
- [x] 기존 코드베이스 분석 (Board, Plan, Subscription 모델 확인)
|
|
- [x] Phase 6.1 악성채권 추심관리 API 개발 완료 (commit: c0af888)
|
|
- [x] Phase 6.2 팝업관리 API 개발 완료
|
|
- [x] Phase 7.1 게시판관리 - 기존 구현 확인 완료
|
|
- [x] Phase 7.2 게시판(사용자용) - 기존 구현 확인 + `/posts/my` API 추가 (commit: c15a245)
|
|
- [x] Phase 7.3 고객센터 → 게시판관리로 대체 결정
|
|
- [x] Phase 8 SaaS 확장 분석 시작
|
|
|
|
### 2025-12-22
|
|
- [x] Phase 8.1 구독관리 - 기존 구현 확인 완료
|
|
- [x] Phase 8.2 결제내역 - 기존 구현 확인 완료
|
|
- [x] Phase 8.3 회사 추가 API 개발 완료 (commit: 7781253)
|
|
- company_requests 테이블 생성
|
|
- CompanyRequest 모델 생성
|
|
- CompanyService 생성 (바로빌 연동 + 테넌트 생성)
|
|
- 7개 API 엔드포인트 구현
|
|
- Swagger 문서 작성
|
|
- [x] Phase 5 전체 기존 구현 확인 완료
|
|
- 5.1 사용자 초대: 5개 API (invite, invitations, accept, cancel, resend)
|
|
- 5.2 알림설정: 3개 API (notification-settings, update, bulk)
|
|
- 5.3 계정정보: 4개 API (withdraw, suspend, agreements)
|
|
- 5.4 매출 거래명세서: 3개 API (statement, issue, send)
|
|
- [x] D1.0 Phase 5-8 전체 API 개발 완료!
|
|
|
|
---
|
|
|
|
## ✅ 완료 기준
|
|
|
|
### Phase 5 완료 조건 (기본 확장) ✅
|
|
- [x] 사용자 초대 API 구현 완료 ✅ 2025-12-19
|
|
- [x] 알림설정 API 확장 완료 ✅ 2025-12-19
|
|
- [x] 계정정보 API 확장 완료 ✅ 2025-12-19
|
|
- [x] 매출 거래명세서 API 구현 완료 ✅ 2025-12-19
|
|
- [x] Swagger 문서 완성 ✅ 2025-12-19
|
|
- [x] Pint 코드 포맷팅 완료 ✅
|
|
|
|
### Phase 6 완료 조건 (핵심 신규)
|
|
- [x] 악성채권 추심관리 전체 구현 ✅ 2025-12-18
|
|
- [x] 팝업관리 전체 구현 ✅ 2025-12-19
|
|
- [x] 마이그레이션 검증 완료
|
|
- [x] Swagger 문서 완성
|
|
|
|
### Phase 7 완료 조건 (게시판 연동) ✅
|
|
- [x] 게시판관리 API 구현 완료 ✅ 2025-12-19
|
|
- [x] 게시판 (사용자용) API 구현 완료 ✅ 2025-12-19
|
|
- [x] 고객센터 → 게시판관리로 대체 결정 ✅ 2025-12-19
|
|
|
|
### Phase 8 완료 조건 (SaaS 확장) ✅
|
|
- [x] 구독관리 API 구현 완료 ✅ 2025-12-22
|
|
- [x] 결제내역 API 구현 완료 ✅ 2025-12-22
|
|
- [x] 회사 추가 API 구현 완료 ✅ 2025-12-22
|
|
- [x] 자료 내보내기 기능 구현 ✅ (SubscriptionService에 포함)
|
|
|
|
### 전체 완료 조건
|
|
- [ ] 모든 D1.0 API 구현 완료 (~71개)
|
|
- [ ] Swagger 문서 100%
|
|
- [ ] 통합 테스트 통과
|
|
- [ ] 프론트엔드 연동 준비 완료
|
|
|
|
---
|
|
|
|
## 🔗 관련 링크
|
|
|
|
- **기존 개발 계획**: [`erp-api-development-plan.md`](./erp-api-development-plan.md)
|
|
- **API Swagger UI**: http://sam.kr/api-docs/index.html
|
|
- **개발 공통 정책**: [`../guides/PROJECT_DEVELOPMENT_POLICY.md`](../guides/PROJECT_DEVELOPMENT_POLICY.md)
|
|
- **D1.0 스토리보드**: [`SAM_ERP_Storyboard_D1.0_251218/`](./SAM_ERP_Storyboard_D1.0_251218/) |