d603fd5c172021a02ed307c7203492399160c89a
- inbound/outbound/rental controller에 fetchTransactionDetail을 추가해 상세 동기화를 지원 - 각 페이지 초기화 시 결재 초안 로딩 권한을 PermissionScope에서 확인하도록 수정 - 상세 패널의 수정 버튼이 모달과 연동되도록 흐름을 정리하고 생성/수정 후 상세 데이터를 재조회 - 기존 결재 메모 필드는 등록 이후 수정 불가하도록 UI와 입력 상태를 비활성화 - 신규 상세-수정 위젯 테스트와 리포지토리 스텁 fetchDetail 구현을 추가 - flutter analyze, flutter test를 실행해 회귀를 점검
Superport v2
간단 입·출고 + 결재 시스템(웹) UI.
환경 설정
- 환경 파일 준비 (.env)
루트에 다음 파일을 생성하세요(예시 제공):
.env.development→ 개발 환경.env.production→ 운영 환경
*.example 파일을 복사하여 값을 채우면 됩니다.
핵심 키:
API_BASE_URL— 백엔드 API 베이스 URLFEATURE_*— 기능 플래그 (예:FEATURE_VENDORS_ENABLED)FEATURE_APPROVALS_ENABLED— 기본값은 개발·운영 모두true, 단 결재 백엔드가 준비되지 않았으면.env.*에서false로 내려 임시 비활성화한다.FEATURE_STOCK_TRANSITIONS_ENABLED— 재고 상태 전이(상신/승인/취소) 버튼 노출 제어. 운영 환경은 백엔드 배포 전까지false로 유지하고, 개발 환경에서만 필요 시true로 전환한다.
QA 토큰/스코프 발급 및 검증 절차는 doc/qa/staging_transaction_flow.md를 참고한다.
- 의존성 설치
flutter pub get
- 개발 실행 (웹)
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— 단위/위젯 테스트
Description
Languages
Dart
95.8%
C++
2%
CMake
1.6%
Ruby
0.2%
Swift
0.2%
Other
0.1%