#!/bin/bash # Đảm bảo script dừng nếu có lỗi xảy ra set -e echo "🚀 Đang quét và cập nhật các đường dẫn import cho cấu trúc Monorepo..." # --- 1. CẬP NHẬT BACKEND (NestJS) --- # Cập nhật backend/src/main.ts # Các Guard/Middleware nay nằm trong auth/ và common/ sed -i -E "s|from\s+['\"](\./)(admin\.guard\|jwt-auth\.guard\|jwt\.strategy)['\"]|from './auth/\2'|g" backend/src/main.ts sed -i -E "s|from\s+['\"](\./)(rbac\.middleware)['\"]|from './common/\2'|g" backend/src/main.ts # Prisma service nay nằm ở ../prisma/ (so với thư mục src/) sed -i -E "s|from\s+['\"](\./prisma/prisma\.service)['\"]|from '../prisma/prisma.service'|g" backend/src/main.ts # Cập nhật các file trong backend/src/auth/ (Guards & Strategies) # Nếu chúng import PrismaService từ ./prisma/prisma.service, nay cần lùi 2 cấp: ../../prisma/prisma.service find backend/src/auth -name "*.ts" -exec sed -i -E "s|from\s+['\"](\./prisma/prisma\.service)['\"]|from '../../prisma/prisma.service'|g" {} + # --- 2. CẬP NHẬT FRONTEND (React + Vite) --- # Cập nhật App.tsx (frontend/src/App.tsx) # Trỏ vào thư mục pages/ và store/ sed -i -E "s|from\s+['\"](\./)(LandingPage\|SignupPage\|TourDetailPage\|ExploreMap)['\"]|from './pages/\2'|g" frontend/src/App.tsx sed -i -E "s|from\s+['\"](\./)(useTourStore)['\"]|from './store/\2'|g" frontend/src/App.tsx # Cập nhật các Trang (frontend/src/pages/*.tsx) # Các trang cần trỏ tới components/ và store/ nằm ở thư mục anh em # Bao gồm: CreateTourModal, LoginModal, ExpenseManager, ItineraryTimeline, AddMemberModal, ConfirmModal, NotificationModal find frontend/src/pages -name "*.tsx" -exec sed -i -E "s|from\s+['\"](\./\|@/components/)(CreateTourModal\|LoginModal\|ExpenseManager\|ItineraryTimeline\|AddMemberModal\|ConfirmModal\|NotificationModal)['\"]|from '../components/\2'|g" {} + find frontend/src/pages -name "*.tsx" -exec sed -i -E "s|from\s+['\"](\./)(useTourStore)['\"]|from '../store/\2'|g" {} + find frontend/src/pages -name "*.tsx" -exec sed -i -E "s|from\s+['\"](\./index\.css)['\"]|from '../index.css'|g" {} + # Cập nhật các Component (frontend/src/components/*.tsx) # Các component/modal cần trỏ tới store/ find frontend/src/components -name "*.tsx" -exec sed -i -E "s|from\s+['\"](\./)(useTourStore)['\"]|from '../store/\2'|g" {} + echo "✅ Hoàn tất cập nhật Import Paths." echo "💡 Lưu ý: Hãy kiểm tra lại các lỗi đỏ trong VS Code. Nếu bạn có sử dụng Path Alias (như @/components), chúng ta sẽ cấu hình nó ở bước tiếp theo trong tsconfig.json."