전역 구조 리팩터링 및 테스트 확장

This commit is contained in:
JiWoong Sul
2025-09-29 01:51:47 +09:00
parent c00c0c9ab2
commit fef7108479
70 changed files with 7709 additions and 3185 deletions

View File

@@ -1,5 +1,5 @@
import 'package:flutter/widgets.dart';
import 'package:lucide_icons_flutter/lucide_icons.dart';
import 'package:lucide_icons_flutter/lucide_icons.dart' as lucide;
class AppPageDescriptor {
const AppPageDescriptor({
@@ -32,7 +32,7 @@ const appSections = <AppSectionDescriptor>[
AppPageDescriptor(
path: dashboardRoutePath,
label: '대시보드',
icon: LucideIcons.layoutDashboard,
icon: lucide.LucideIcons.layoutDashboard,
summary: '오늘 입고/출고, 결재 대기, 최근 트랜잭션을 한 화면에서 확인합니다.',
),
],
@@ -43,19 +43,19 @@ const appSections = <AppSectionDescriptor>[
AppPageDescriptor(
path: '/inventory/inbound',
label: '입고',
icon: LucideIcons.packagePlus,
icon: lucide.LucideIcons.packagePlus,
summary: '입고 처리 기본정보와 라인 품목을 등록하고 검토합니다.',
),
AppPageDescriptor(
path: '/inventory/outbound',
label: '출고',
icon: LucideIcons.packageMinus,
icon: lucide.LucideIcons.packageMinus,
summary: '출고 품목, 고객사 연결, 상태 변경을 관리합니다.',
),
AppPageDescriptor(
path: '/inventory/rental',
label: '대여',
icon: LucideIcons.handshake,
icon: lucide.LucideIcons.handshake,
summary: '대여/반납 구분과 반납예정일을 포함한 대여 흐름입니다.',
),
],
@@ -66,49 +66,49 @@ const appSections = <AppSectionDescriptor>[
AppPageDescriptor(
path: '/masters/vendors',
label: '제조사 관리',
icon: LucideIcons.factory,
icon: lucide.LucideIcons.factory,
summary: '벤더코드, 명칭, 사용여부 등을 유지합니다.',
),
AppPageDescriptor(
path: '/masters/products',
label: '장비 모델 관리',
icon: LucideIcons.box,
icon: lucide.LucideIcons.box,
summary: '제품코드, 제조사, 단위 정보를 관리합니다.',
),
AppPageDescriptor(
path: '/masters/warehouses',
label: '입고지 관리',
icon: LucideIcons.warehouse,
icon: lucide.LucideIcons.warehouse,
summary: '창고 주소와 사용여부를 설정합니다.',
),
AppPageDescriptor(
path: '/masters/customers',
label: '회사 관리',
icon: LucideIcons.building,
icon: lucide.LucideIcons.building,
summary: '고객사 연락처와 주소 정보를 관리합니다.',
),
AppPageDescriptor(
path: '/masters/users',
label: '사용자 관리',
icon: LucideIcons.users,
icon: lucide.LucideIcons.users,
summary: '사번, 그룹, 사용여부를 관리합니다.',
),
AppPageDescriptor(
path: '/masters/groups',
label: '그룹 관리',
icon: LucideIcons.layers,
icon: lucide.LucideIcons.layers,
summary: '권한 그룹과 설명, 기본여부를 정의합니다.',
),
AppPageDescriptor(
path: '/masters/menus',
label: '메뉴 관리',
icon: LucideIcons.listTree,
icon: lucide.LucideIcons.listTree,
summary: '메뉴 계층과 경로, 노출 순서를 구성합니다.',
),
AppPageDescriptor(
path: '/masters/group-permissions',
label: '그룹 메뉴 권한',
icon: LucideIcons.shieldCheck,
icon: lucide.LucideIcons.shieldCheck,
summary: '그룹별 메뉴 CRUD 권한을 설정합니다.',
),
],
@@ -119,25 +119,25 @@ const appSections = <AppSectionDescriptor>[
AppPageDescriptor(
path: '/approvals/requests',
label: '결재 관리',
icon: LucideIcons.fileCheck,
icon: lucide.LucideIcons.fileCheck,
summary: '결재 번호, 상태, 상신자를 관리합니다.',
),
AppPageDescriptor(
path: '/approvals/steps',
label: '결재 단계',
icon: LucideIcons.workflow,
icon: lucide.LucideIcons.workflow,
summary: '단계 순서와 승인자 할당을 설정합니다.',
),
AppPageDescriptor(
path: '/approvals/history',
label: '결재 이력',
icon: LucideIcons.history,
icon: lucide.LucideIcons.history,
summary: '결재 단계별 변경 이력을 조회합니다.',
),
AppPageDescriptor(
path: '/approvals/templates',
label: '결재 템플릿',
icon: LucideIcons.fileSpreadsheet,
icon: lucide.LucideIcons.fileSpreadsheet,
summary: '반복되는 결재 흐름을 템플릿으로 관리합니다.',
),
],
@@ -148,7 +148,7 @@ const appSections = <AppSectionDescriptor>[
AppPageDescriptor(
path: '/utilities/postal-search',
label: '우편번호 검색',
icon: LucideIcons.search,
icon: lucide.LucideIcons.search,
summary: '모달 기반 우편번호 검색 도구입니다.',
),
],
@@ -159,7 +159,7 @@ const appSections = <AppSectionDescriptor>[
AppPageDescriptor(
path: '/reports',
label: '보고서',
icon: LucideIcons.fileDown,
icon: lucide.LucideIcons.fileDown,
summary: '조건 필터와 PDF/XLSX 다운로드 기능입니다.',
),
],