JiWoong Sul d76f765814 feat(approvals): Approval Flow v2 프런트엔드 전면 개편
- 환경/라우터 모듈에 approval_flow_v2 토글을 추가하고 FeatureFlags 초기화를 연결 (.env*, lib/core/**)
- ApiClient 빌더·ApiRoutes 확장과 ApprovalRepositoryRemote 리팩터링으로 include·액션 시그니처를 정합화
- ApprovalFlow·ApprovalDraft 엔티티/레포/유즈케이스를 도입해 서버 초안과 단계 액션(승인·회수·재상신)을 지원
- Approval 컨트롤러·히스토리·템플릿 페이지와 공유 위젯을 재작성해 감사 로그·회수 UX·템플릿 CRUD를 반영
- Inbound/Outbound/Rental 컨트롤러·페이지에 결재 섹션을 삽입하고 대시보드 pending 카드 요약을 갱신
- SuperportDialog·FormField 등 공통 위젯을 보강하고 승인 위젯 가이드를 추가해 UI 가이드를 정리
- 결재/재고 테스트 픽스처와 단위·위젯·통합 테스트를 확장하고 flutter_test_config로 스테이징 호스트를 허용
- Approval Flow 레포트/플랜 문서를 업데이트하고 ApprovalFlow_System_Integration_and_ChangePlan.md를 추가
- 실행: flutter analyze, flutter test
2025-10-31 01:05:39 +09:00

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로 전환한다.
  1. 의존성 설치
flutter pub get
  1. 개발 실행 (웹)
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()를 통해 토스트/다이얼로그로 노출되며, 필드 검증 오류와 일반 메시지를 자동 병합한다.

필수 환경 변수

  • ENVdevelopment/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 — 단위/위젯 테스트
Description
No description provided
Readme 5.2 MiB
Languages
Dart 95.8%
C++ 2%
CMake 1.6%
Ruby 0.2%
Swift 0.2%
Other 0.1%