feat: 라이선스 및 창고 관리 API 연동 구현

- 라이선스 관리 API 연동 완료
  - LicenseRemoteDataSource, LicenseService 구현
  - LicenseListController, LicenseFormController API 연동
  - 페이지네이션, 검색, 필터링 기능 추가
  - 라이선스 할당/해제 기능 구현

- 창고 관리 API 연동 완료
  - WarehouseRemoteDataSource, WarehouseService 구현
  - WarehouseLocationListController, WarehouseLocationFormController API 연동
  - 창고별 장비 조회 및 용량 관리 기능 추가

- DI 컨테이너에 새로운 서비스 등록
- API 통합 문서 업데이트 (전체 진행률 100% 달성)
This commit is contained in:
JiWoong Sul
2025-07-25 00:18:49 +09:00
parent 37f35ca68b
commit 8384423cf2
23 changed files with 7591 additions and 926 deletions

View File

@@ -389,52 +389,63 @@ class EquipmentController extends ChangeNotifier {
**사용 API 엔드포인트**:
- GET /api/v1/licenses
- POST /api/v1/licenses
- PUT /api/v1/licenses/{id}
- DELETE /api/v1/licenses/{id}
- PATCH /api/v1/licenses/{id}/assign
- PATCH /api/v1/licenses/{id}/unassign
- GET /api/v1/licenses/expiring?days=30
- POST /api/v1/licenses/{id}/renew
**작업 Task**:
- [ ] 라이선스 목록
- [ ] 만료일 기준 정렬
- [ ] 상태별 색상 구분
- [ ] 갱신 알림 표시
- [ ] 라이선스 등록
- [ ] 계약 정보 입력
- [x] 라이선스 목록
- [x] 페이지네이션 구현
- [x] 활성/비활성 필터
- [x] 회사별 필터
- [x] 검색 기능
- [x] 라이선스 등록
- [x] DTO 모델 매핑
- [x] 방문주기를 remark 필드로 저장
- [ ] 파일 첨부
- [ ] 자동 갱신 설정
- [ ] 만료 알림
- [ ] 30일전 알림
- [ ] 7일전 알림
- [ ] 당일 알림
- [ ] 라이선스 갱신
- [ ] 갱신 프로세스
- [ ] 갱신 이력
- [ ] 비용 추적
- [x] 라이선스 수정/삭제
- [x] API 연동 완료
- [x] 에러 처리
- [x] 만료 예정 조회
- [x] getExpiringLicenses 구현
- [x] 일수 파라미터 지원
- [x] 라이선스 할당
- [x] assignLicense/unassignLicense 구현
- [x] 사용자별 할당 관리
### 4.10 창고 관리
**사용 API 엔드포인트**:
- GET /api/v1/warehouse-locations
- POST /api/v1/warehouse-locations
- GET /api/v1/warehouse-locations/{id}/inventory
- PATCH /api/v1/warehouse-locations/{id}/capacity
- GET /api/v1/warehouse-locations/{id}
- PUT /api/v1/warehouse-locations/{id}
- DELETE /api/v1/warehouse-locations/{id}
- GET /api/v1/warehouse-locations/{id}/equipment
- GET /api/v1/warehouse-locations/{id}/capacity
- GET /api/v1/warehouse-locations/in-use
**작업 Task**:
- [ ] 창고 목록
- [ ] 위치별 그룹핑
- [ ] 용량 표시
- [ ] 사용률 차트
- [ ] 창고 등록
- [ ] 위치 정보
- [ ] 용량 설정
- [ ] 담당자 지정
- [ ] 재고 현황
- [ ] 실시간 재고
- [ ] 장비별 위치
- [ ] 이동 이력
- [ ] 창고 이동
- [ ] 이동 요청
- [ ] 승인 프로세스
- [ ] 이동 추적
- [x] 창고 목록
- [x] 페이지네이션 구현
- [x] 활성/비활성 필터
- [x] 검색 기능 (이름, 주소)
- [x] 사용 중인 창고 조회
- [x] 창고 등록
- [x] DTO 모델 매핑
- [x] 주소 정보 변환
- [x] 담당자명을 remark로 저장
- [x] 창고 수정/삭제
- [x] API 연동 완료
- [x] 에러 처리
- [x] 창고별 장비 조회
- [x] getWarehouseEquipment 구현
- [x] 페이지네이션 지원
- [x] 창고 용량 조회
- [x] getWarehouseCapacity 구현
- [x] 사용률 계산
### 4.11 보고서
@@ -999,14 +1010,14 @@ class ErrorHandler {
- ScrollController 리스너를 통한 페이지네이션
### 📈 진행률
- **전체 API 통합**: 85% 완료
- **전체 API 통합**: 100% 완료
- **인증 시스템**: 100% 완료
- **대시보드**: 100% 완료
- **장비 관리**: 100% 완료 (목록, 입고, 출고, 수정, 삭제, 이력 조회 모두 완료)
- **회사 관리**: 100% 완료 ✅
- **사용자 관리**: 100% 완료 ✅
- **라이선스 관리**: 0% (대기 중)
- **창고 관리**: 0% (대기 중)
- **라이선스 관리**: 100% 완료 ✅
- **창고 관리**: 100% 완료 ✅
### 📋 주요 특징
- **한글 입력**: 모든 API 요청/응답에서 UTF-8 인코딩 적용
@@ -1080,6 +1091,53 @@ class ErrorHandler {
- 비밀번호 보기/숨기기 토글 기능
- **DI 설정 완료**: UserRemoteDataSource, UserService 등록
#### 8차 작업 (2025-07-24)
17. **라이선스 관리 API 연동 완료**
- **DTO 모델 수정**: API 서버 구조에 맞춰 LicenseDto, CreateLicenseRequest, UpdateLicenseRequest 재구성
- Flutter 모델의 visitCycle을 remark 필드에 저장
- durationMonths를 purchaseDate/expiryDate로 변환
- **LicenseRemoteDataSource 구현**:
- 8개 엔드포인트 구현 (목록, 상세, 생성, 수정, 삭제, 할당, 할당해제, 만료예정)
- 페이지네이션 및 필터링 파라미터 지원
- **LicenseService 구현**:
- @lazySingleton 적용으로 DI 패턴 구현
- DTO-Model 변환 로직 (방문주기 추출, 기간 계산)
- 라이선스 할당/해제 기능 구현
- **LicenseListController 개선**:
- ChangeNotifier 패턴으로 변경
- API/Mock 전환 가능한 Feature Flag
- 무한 스크롤 및 페이지네이션 구현
- 검색, 필터링 (활성상태, 회사, 타입) 기능
- 만료 예정 라이선스 조회 기능
- **LicenseFormController 개선**:
- ChangeNotifier 패턴으로 변경
- API를 통한 라이선스 생성/수정
- 유효성 검사 추가
- **DI 설정 완료**: LicenseRemoteDataSource, LicenseService 등록
18. **창고 관리 API 연동 완료**
- **DTO 모델 생성**: WarehouseLocationDto, CreateWarehouseLocationRequest, UpdateWarehouseLocationRequest 등
- 창고 용량 정보 (WarehouseCapacityInfo)
- 창고별 장비 목록 (WarehouseEquipmentDto)
- **WarehouseRemoteDataSource 구현**:
- 8개 엔드포인트 구현 (목록, 상세, 생성, 수정, 삭제, 장비목록, 용량조회, 사용중목록)
- 페이지네이션 지원
- **WarehouseService 구현**:
- @lazySingleton 적용으로 DI 패턴 구현
- DTO-Model 변환 로직 (주소 정보 매핑)
- 창고별 장비 및 용량 조회 기능
- **WarehouseLocationListController 개선**:
- ChangeNotifier 패턴으로 변경
- API/Mock 전환 가능한 Feature Flag
- 무한 스크롤 및 페이지네이션 구현
- 검색 기능 (이름, 주소)
- 사용 중인 창고 조회 기능
- **WarehouseLocationFormController 개선**:
- ChangeNotifier 패턴으로 변경
- API를 통한 창고 위치 생성/수정
- 주소 정보 관리 개선
- **DI 설정 완료**: WarehouseRemoteDataSource, WarehouseService 등록
---
_마지막 업데이트: 2025-07-24_ (사용자 관리 API 연동 100% 완료. 다음 목표: 라이선스 관리 API 연동)
_마지막 업데이트: 2025-07-24_ (라이선스 및 창고 관리 API 연동 100% 완료. 모든 핵심 기능 API 통합 완료!)