- frontend/lib/api/substitute.ts: 7개 API 함수 (Record<string, any> 컨벤션)
- components/admin/SubstituteSection.tsx (신규): 관리자용 대무자 지정 섹션
· 활성/예정 대무 관계 테이블, 사전 겹침 검증
· v5 토큰 (--v5-surface-solid, --v5-glow-sm) 사용, blur 금지
- components/admin/UserFormModal.tsx: 수정 모드일 때 SubstituteSection 노출
- components/layout/MySubstituteView.tsx (신규): ProfileModal 용 read-only 조회
· 내 대무자 + 내가 대무 중인 사람 양방향, D-day 카운트다운
- components/layout/ProfileModal.tsx: MySubstituteView 삽입
- app/(main)/approval/page.tsx: 대기함 행에 "대무 ← {원본 결재자}" 뱃지
· currentUser.user_id !== line.approver_id 비교 (별도 타입 필드 X)
ProfileModal 의 isDriver 토글 섹션 + 새 차량 등록 모달 + DriverInfo
/DriverFormData 타입 + 관련 props 모두 제거. 호출부(AppLayout) 와
useProfile 훅의 driver/vehicle 상태 관리 로직도 함께 정리.
차량/운전자 메뉴 화면(components/vehicle/*) 과 대시보드 위젯
(VehicleListWidget, DriverManagementWidget 등) 은 그대로 유지.
3 files changed, 525 deletions(-).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>