Files
superport_v2/README.md
JiWoong Sul 47cc62a33d feat(inventory): 재고 현황 요약/상세 플로우를 릴리스
- lib/features/inventory/summary 계층과 warehouse select 위젯을 추가해 목록/상세, 자동 새로고침, 필터, 상세 시트를 구현

- PermissionBootstrapper, scope 파서, 라우트 가드로 inventory.view 기반 권한 부여와 메뉴 노출을 통합(lib/core, lib/main.dart 등)

- Inventory Summary API/QA/Audit 문서와 PR 템플릿, CHANGELOG를 신규 스펙과 검증 커맨드로 업데이트

- DTO 직렬화 의존성을 추가하고 Golden·Widget·단위 테스트를 작성했으며 flutter analyze / flutter test --coverage를 통과
2025-11-09 01:13:10 +09:00

65 lines
2.6 KiB
Markdown

# Superport v2
간단 입·출고 + 결재 시스템(웹) UI.
## 환경 설정
1) 환경 파일 준비 (.env)
루트에 다음 파일을 생성하세요(예시 제공):
- `.env.development` → 개발 환경
- `.env.production` → 운영 환경
`*.example` 파일을 복사하여 값을 채우면 됩니다.
핵심 키:
- `API_BASE_URL` — 백엔드 API 베이스 URL
- `FEATURE_*` — 기능 플래그 (예: `FEATURE_VENDORS_ENABLED`)
- `FEATURE_APPROVALS_ENABLED` — 기본값은 개발·운영 모두 `true`, 단 결재 백엔드가 준비되지 않았으면 `.env.*`에서 `false`로 내려 임시 비활성화한다.
- `FEATURE_STOCK_TRANSITIONS_ENABLED` — 재고 상태 전이(상신/승인/취소) 버튼 노출 제어. 운영 환경은 백엔드 배포 전까지 `false`로 유지하고, 개발 환경에서만 필요 시 `true`로 전환한다.
QA 토큰/스코프 발급 및 검증 절차는 `doc/qa/staging_transaction_flow.md`를 참고한다.
2) 의존성 설치
```
flutter pub get
```
3) 개발 실행 (웹)
```
flutter run -d chrome --web-renderer canvaskit --dart-define=ENV=development
```
## API 연동
- 모든 HTTP 호출은 `ApiRoutes.apiV1`(`/api/v1`) 프리픽스를 사용하며, `Environment.initialize()` 완료 후 `ApiClient`를 통해 수행한다.
- 현재 연동된 주요 리소스
- `/customers`, `/vendors`, `/products`, `/uoms`, `/users`, `/groups`, `/menus`, `/group-menu-permissions`
- `/warehouses`, `/transaction-types`, `/transaction-statuses`, `/approval-statuses`, `/approval-actions`
- `/approvals`, `/approval-steps`, `/approval/templates`, `/approval-histories`
- `/stock-transactions`(lines/customers 포함), `/reports/downloads`
- `/zipcodes` (우편번호 검색)
- API 응답 실패는 `Failure.describe()`를 통해 토스트/다이얼로그로 노출되며, 필드 검증 오류와 일반 메시지를 자동 병합한다.
### 필수 환경 변수
- `ENV``development`/`production` 중 하나로 `.env.<env>` 파일을 선택
- `API_BASE_URL` — 서버 베이스 URL (`/api/v1` 제외)
- `FEATURE_*` — 도메인별 기능 플래그 (`FEATURE_APPROVALS_ENABLED`, `FEATURE_PRODUCTS_ENABLED` 등)
- `PERMISSION__<resource>` — 권한 게이트에서 사용할 리소스별 액션 집합(예: `PERMISSION__stock-transactions=read,submit,approve`)
## 구조
- `lib/core/` — 공통 구성(환경, 네트워크, 라우팅)
- `lib/features/<domain>/` — 기능별 폴더 (clean architecture: domain/data/presentation)
- `lib/widgets/` — 공용 위젯
## 빌드/검증
- `flutter analyze` — 정적 분석
- `flutter test` — 단위/위젯 테스트