- 에러 리포팅 유틸리티 및 API route 추가
- ErrorBoundary(error.tsx) 에러 리포팅 연동
- providers 컴포넌트 구조 추가
- layout에 provider 적용
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- executePaginatedAction, buildApiUrl 유틸 모듈 분리
- QuoteCalculationReport, demoStore, export.ts 불필요 코드 삭제
- CLAUDE.md에 Zod 스키마 검증 및 Server Action 공통 유틸 규칙 추가
- package.json 의존성 업데이트
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- V2 컴포넌트를 원본에 통합 후 V2 파일 삭제 (InspectionModal, BillDetail, ContractDocumentModal, LaborDetailClient, PricingDetailClient, QuoteRegistration)
- store → stores 디렉토리 이동 및 favoritesStore 추가
- dashboard_type3~5 추가 및 기존 대시보드 차트/훅 분리
- Sidebar 리팩토링 및 HeaderFavoritesBar 추가
- DashboardSwitcher 컴포넌트 추가
- 백업 파일(.v1-backup) 및 불필요 코드 정리
- InspectionPreviewModal 레이아웃 개선
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- DataTable 컴포넌트 기능 확장 및 코드 개선
- 회계 상세 컴포넌트(Bill/Deposit/Purchase/Sales/Withdrawal) 리팩토링
- 엑셀 다운로드 유틸리티 개선
- 대시보드 및 각종 리스트 페이지 업데이트
- dashboard_type2 페이지 추가
- 프론트엔드 개선 로드맵 문서 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- SearchableSelectionModal<T> 제네릭 컴포넌트 추출 (organisms)
- 검색 모달 5개 리팩토링: SupplierSearch, QuotationSelect, SalesOrderSelect, OrderSelect, ItemSearch
- shared-lookups API 유틸 추가 (거래처/품목/수주 등 공통 조회)
- create-crud-service 확장 (lookup, search 메서드)
- actions.ts 20+개 파일 lookup 패턴 통일
- 공통 페이지 패턴 가이드 문서 추가
- CLAUDE.md Common Component Usage Rules 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 공정관리: 드래그&드롭 순서 변경 기능 추가 (reorderProcesses API)
- 수주서(SalesOrderDocument): 기획서 D1.8 기준 리디자인, 출고증과 동일 자재 섹션 구조
- 출고증(ShipmentOrderDocument): 레이아웃 개선
- 체크리스트 관리 페이지 신규 추가 (master-data/checklist-management)
- QMS 품질감사: 타입 및 목데이터 수정
- menuRefresh 유틸 정리
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- executeServerAction 공통 유틸 도입으로 actions.ts 대폭 간소화 (50+개 파일)
- sanitize 유틸 추가 (XSS 방지)
- middleware CSP 헤더 추가 및 Open Redirect 방지
- 프록시 라우트 로깅 개발환경 한정으로 변경
- 프로덕션 불필요 console.log 제거
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
공통화:
- status-config.ts 신규 추가 (상태 설정 중앙 관리)
- StatusBadge 컴포넌트 개선
- 뱃지 공통화 가이드 문서 추가
상세 페이지 훅 시스템:
- useDetailData, useDetailPageState, useDetailPermissions, useCRUDHandlers 훅 신규 추가
- hooks/index.ts 진입점 추가
- BillDetailV2 신규 컴포넌트 추가
리팩토링:
- 회계(매입/어음/거래처), 품목, 단가, 견적, 주문 상태 뱃지 공통화 적용
- 생산(작업지시서/대시보드/작업자화면), 품질(검사관리) 상태 뱃지 적용
- 공사관리(칸반/프로젝트카드) 상태 뱃지 적용
- 고객센터(문의관리), 인사(직원CSV업로드) 개선
- 리스트 페이지 공통화 현황 분석 문서 추가
상수 정리:
- lib/constants/ 디렉토리 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
자재관리:
- 입고관리 재고조정 다이얼로그 신규 추가, 상세/목록 기능 확장
- 재고현황 컴포넌트 리팩토링
출고관리:
- 출하관리 생성/수정/목록/상세 개선
- 차량배차관리 상세/수정/목록 기능 보강
생산관리:
- 작업지시서 WIP 생산 모달 신규 추가
- 벤딩WIP/슬랫조인트바 검사 콘텐츠 신규 추가
- 작업자화면 기능 대폭 확장 (카드/목록 개선)
- 검사성적서 모달 개선
품질관리:
- 실적보고서 관리 페이지 신규 추가
- 검사관리 문서/타입/목데이터 개선
단가관리:
- 단가배포 페이지 및 컴포넌트 신규 추가
- 단가표 관리 페이지 및 컴포넌트 신규 추가
공통:
- 권한 시스템 추가 개선 (PermissionContext, usePermission, PermissionGuard)
- 메뉴 폴링 훅 개선, 레이아웃 수정
- 모바일 줌/패닝 CSS 수정
- locale 유틸 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- PermissionContext 기능 확장 (권한 조회 액션 추가)
- usePermission 훅 개선
- 회계 모듈 권한 통합: 매입/매출/입금/지출/채권/거래처/어음/일보/부실채권
- 인사 모듈 권한 통합: 근태/카드/급여 관리
- 전자결재 권한 통합: 기안함/결재함
- 게시판/품목/단가/팝업/구독 리스트 권한 적용
- UniversalListPage 권한 연동
- 각 컴포넌트 중복 권한 체크 코드 제거 (-828줄)
- 권한 검증 QA 체크리스트 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- PermissionContext, usePermission 훅, PermissionGuard 컴포넌트 신규 추가
- AccessDenied 접근 거부 페이지 추가
- permissions lib (체커, 매퍼, 타입) 구현
- BadDebtDetail, BoardDetail, LaborDetail, PricingDetail 등 상세 페이지 권한 적용
- ProcessDetail, StepDetail, ItemDetail, PermissionDetail 권한 연동
- RootProvider에 PermissionProvider 통합
- protected layout 권한 체크 추가
- Claude 프로젝트 설정 파일 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- common-codes.ts에서 'use server' 제거, 타입/유틸리티만 유지
- useCommonCodes 훅 생성 (클라이언트 /api/proxy/ 패턴, 5분 캐시)
- ItemListClient 탭/통계카드를 common_codes 기반 동적 생성으로 전환
- OrderSalesDetailEdit 서버액션 → useCommonCodes 훅 전환
- order-management actions.ts 서버액션 내 공통코드 직접 조회로 변경
- 오늘의 이슈 섹션에 "오늘" / "이전 이슈" 탭 추가
- 이전 이슈 탭에서 날짜 네비게이션(< >, date input) 지원
- usePastIssue 훅 추가 (date 파라미터로 과거 이슈 API 호출)
- 탭/날짜 전환 시 필터 및 상태 자동 리셋
- 로딩 중 그리드 높이 유지로 UI 들썩임 방지
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- API: fetch-wrapper/proxy/refresh-token 리팩토링, authenticated-fetch 신규 추가
- CEO 대시보드: EnhancedSections 현황판 기능 개선, dashboard transformers/types 확장
- 문서 시스템: ApprovalLine/DocumentHeader/DocumentToolbar/DocumentViewer 개선
- 작업지시서: 검사보고서/작업일지 문서 컴포넌트 개선 (벤딩/스크린/슬랫)
- 레이아웃: Sidebar/AuthenticatedLayout 수정
- 작업자화면: WorkerScreen 수정
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 공통 템플릿 타입 수정 (IntegratedDetailTemplate, UniversalListPage)
- 페이지(app/[locale]) 타입 호환성 수정 (80개)
- 재고/자재 모듈 타입 수정 (StockStatus, ReceivingManagement)
- 생산 모듈 타입 수정 (WorkOrders, WorkerScreen, WorkResults)
- 주문/출고 모듈 타입 수정 (ShipmentManagement, Orders)
- 견적/단가 모듈 타입 수정 (Quotes, Pricing)
- 건설 모듈 타입 수정 (49개, 17개 하위 모듈)
- HR 모듈 타입 수정 (CardManagement, VacationManagement 등)
- 설정 모듈 타입 수정 (PermissionManagement, AccountManagement 등)
- 게시판 모듈 타입 수정 (BoardManagement, BoardList 등)
- 회계 모듈 타입 수정 (VendorManagement, BadDebtCollection 등)
- 기타 모듈 타입 수정 (CEODashboard, clients, vehicle 등)
- 유틸/훅/API 타입 수정 (hooks, contexts, lib)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
transformers.ts:
- NOTIFICATION_TYPE_TO_BADGE 백엔드 TodayIssue.php와 동기화
- BADGE_TO_NOTIFICATION_TYPE 역방향 매핑 추가 (fallback용)
- validateNotificationType에 badge 기반 추론 로직 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
transformers.ts:
- notification_type 영문 코드 기반 변환 (sales_order, bad_debt 등)
- NOTIFICATION_TYPE_TO_BADGE 매핑 테이블 추가
- validateNotificationType 함수로 타입 안전성 확보
types.ts:
- TodayIssueNotificationType 타입 추가
- TodayIssueListItem에 notificationType 필드 추가
TodayIssueSection:
- notificationType 기반 색상 매핑 적용
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- TodayIssueListBadgeType 업데이트 (수주등록, 추심이슈, 안전재고 등)
- BADGE_COLORS 및 FILTER_KEYS 새 타입으로 변경
- transformers.ts의 VALID_BADGE_TYPES 배열 동기화
- 입금/출금 뱃지 타입 추가
- ItemSearchModal: API 프록시 라우트 연동, 검색 유효성 검사 (영문/한글 1자 이상)
- items.ts: HttpOnly 쿠키 인증을 위한 프록시 라우트 사용
- LocationDetailPanel: 수동 품목 추가 시 subtotals/grouped_items 동시 업데이트
- QuoteRegistrationV2: 견적 산출 시 수동 추가 품목(is_manual) 보존
- 상세별 합계에서 수동 추가 품목이 카테고리별로 표시되도록 개선
- 공통 레이아웃 패턴 적용: [달력] → [프리셋] → [검색창] → [버튼들]
- beforeTableContent → headerActions + createButton 마이그레이션
- DateRangeSelector extraActions prop 활용하여 검색창 통합
- PricingListClient 테이블 행 클릭 → 상세 이동 기능 추가
- 회계 관련 페이지 (입금/출금/매입/매출/어음/카드/예상지출 등) 정리
- 건설 관련 페이지 검색 영역 정리
- 부모 메뉴 리다이렉트 컴포넌트 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- normalizePath 헬퍼 함수 추가 (/ko prefix, ?mode=view 자동 추가)
- 대시보드 detailButtonPath에 /ko prefix 적용
- start 스크립트에 -H 0.0.0.0 추가 (외부 접근 허용)
- start:local 스크립트 추가 (로컬 전용)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 수주 상세 페이지에 삭제 기능 추가
- 수주등록/취소 상태에서 삭제 버튼 표시
- 삭제 확인 다이얼로그 구현
- 삭제 후 목록 페이지로 이동
- 출하목록 데이터 누락 수정
- 발주처/현장명 order_info 참조하도록 수정
- 배송방식 라벨 API 응답값 사용
- 공통코드 API 함수 추가
- getDeliveryMethodCodes, getDeliveryMethodOptions
- getCodeLabel 유틸 함수
- SalesManagement actions 및 index 개선
- EmployeeForm 수정
- WorkOrder Detail/Edit/List 컴포넌트 업데이트
- IntegratedDetailTemplate types 수정
- dashboard types 업데이트
- transformers.ts: footer_summary destructuring 누락 수정
- cardManagementConfigTransformers.ts: items, by_user, monthly_trend 방어적 코드 추가
- undefined 배열 접근 시 빈 배열 기본값 적용
- 카드 사용 상세(cm1), 가지급금 상세(cm2) 모달 에러 해결
카드/가지급금 관리 섹션의 4개 카드(cm1~cm4)를 실제 API 데이터로 연동:
- cm1: 카드 사용액 - CardTransaction API (기존)
- cm2: 가지급금 - LoanDashboard API (신규 연동)
- cm3: 법인세 예상 가중 - TaxSimulation API (신규 연동)
- cm4: 대표자 종합세 예상 가중 - TaxSimulation API (신규 연동)
변경 사항:
- transformCardManagementResponse: LoanDashboard, TaxSimulation 파라미터 추가
- useCEODashboard: 3개 API 병렬 호출 (Promise.all)
- useCardManagement: 동일하게 다중 API 호출 적용
- 각 API 실패 시 fallback 데이터 사용 (graceful degradation)
- 모든 카드(me1~me4)가 expected-expenses/dashboard-detail API 사용
- transaction_type 파라미터로 필터링 (me1=purchase, me2=card, me3=bill)
- cardId별 모달 제목 동적 설정 추가
- 불필요한 import 정리
- API 타입 정의 추가 (LoanDashboard, TaxSimulation)
- API 엔드포인트 함수 추가 (endpoints.ts)
- 모달 데이터 훅 생성 (useCardManagementModals.ts)
관련: docs/plans/card-management-section-plan.md
Phase 2 프론트엔드 연동 완료:
- WelfareDetailApiResponse 타입 정의 추가 (types.ts)
- useWelfareDetail hook 추가 (useCEODashboard.ts)
- transformWelfareDetailResponse 변환 함수 추가 (transformers.ts)
- CEODashboard에 API 연동 및 Mock fallback 구현
변경 파일:
- src/lib/api/dashboard/types.ts: 복리후생비 상세 API 응답 타입
- src/hooks/useCEODashboard.ts: useWelfareDetail hook
- src/lib/api/dashboard/transformers.ts: API → DetailModalConfig 변환
- src/components/business/CEODashboard/CEODashboard.tsx: 모달 API 연동
- src/components/business/CEODashboard/modalConfigs/welfareConfigs.ts: deprecation 문서화
- 수주 상세 페이지에서 수주확정 시 FCM 푸시 알림 발송 추가
- FCM 프리셋 함수 추가: 계약완료, 발주완료 알림
- 입금 등록 시 입금일, 입금계좌, 입금자명, 입금금액 입력 가능
- 견적 저장 시 토스트 메시지 정상 표시 수정
- ShipmentCreate SelectItem key prop 경고 수정
- DevToolbar 문법 오류 수정
- 입금관리, 출금관리 리스트에 등록 버튼 추가
- skeleton, confirm-dialog, empty-state, status-badge UI 컴포넌트 추가
- document-system 컴포넌트 추상화 (ApprovalLine, DocumentHeader 등)
- 여러 페이지 컴포넌트 리팩토링 및 코드 정리
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- TodayIssue 타입 정의 파일 생성 (src/types/today-issue.ts)
- TodayIssue API 서비스 함수 생성 (src/lib/api/today-issue.ts)
- getUnreadTodayIssues: 읽지 않은 알림 목록 조회
- markTodayIssueAsRead: 개별 읽음 처리
- markAllTodayIssuesAsRead: 전체 읽음 처리
- AuthenticatedLayout 알림 드롭다운 API 연동
- MOCK_NOTIFICATIONS 제거, 실제 API 연동
- 30초 폴링으로 알림 데이터 갱신
- 알림 클릭 시 읽음 처리 + 페이지 이동
- 모두 읽음 버튼 기능 구현
- 벨 애니메이션 (읽지 않은 알림 있을 때만)
- 숫자/통화/전화번호/사업자번호 등 특수 입력 컴포넌트 추가
- MobileCard 컴포넌트 통합 (ListMobileCard 제거)
- IntegratedListTemplateV2 페이지네이션 버그 수정 (NaN 이슈)
- IntegratedDetailTemplate 타이틀 중복 수정
- 문서 시스템 컴포넌트 추가
- 헤더 벨 아이콘 포커스 스타일 개선
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- StatusBoard(현황판) API Hook 및 타입 추가
- TodayIssue(오늘의 이슈) API Hook 및 타입 추가
- Calendar(캘린더) API Hook 및 타입 추가
- Vat(부가세) API Hook 및 타입 추가
- Entertainment(접대비) API Hook 및 타입 추가
- Welfare(복리후생비) API Hook 및 타입 추가
- CEODashboard.tsx에 모든 Phase 2 Hook 통합
- API 응답 → Frontend 타입 변환 transformer 추가
- WelfareCalculationType 'percentage' → 'ratio' 타입 일치 수정
- DailyReport, Receivable, DebtCollection, MonthlyExpense, CardManagement API 연동
- useCEODashboard Hook 추가 (병렬 API 호출)
- API → Frontend 타입 변환 함수 및 CheckPoint 생성 로직 구현
- API 실패 시 mockData fallback 패턴 적용