Files
superport_v2/README.md
JiWoong Sul fa0bda5ea4 feat(frontend): 승인 템플릿 API 통합 및 디버그 로그인 확장
- docs 폴더 문서를 최신 API 계약으로 갱신하고 가이드를 다듬었다\n- approvals data/presentation 레이어를 API v4 스펙에 맞춰 리팩터링했다\n- approver 자동완성 위젯을 신규 공유 레포지토리에 맞춰 교체하고 UX를 보강했다\n- inventory/rental 페이지 테이블 초기화 시 승인 기준 연동을 정비했다\n- 로그인 페이지 디버그 버튼을 tera/exa 계정으로 분리해 QA 로그인을 단순화했다\n- get_it 등록과 테스트 케이스를 신규 공유 리포지토리에 맞춰 업데이트했다
2025-11-05 17:05:38 +09:00

2.5 KiB

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 — 단위/위젯 테스트