# Task-509: InsuRo UX 개선 - 플랜 흐름 적용

## 목표
InsuRo에 플랜 시스템 UX를 도입하여 "서비스 안내 → 플랜 & 구독 → 세부 기능" 흐름 구축

## 에이전트 미팅 결과 (2026-03-13)
미팅 기록: `/home/jay/workspace/memory/meetings/2026-03-13-insuro-ux-plan-flow.md`

## 수정 범위 (프론트엔드 UX만, 서버사이드 제외)

### Phase 1: 핵심 구조 (이번 위임)

#### 1. `/pricing` 페이지 신설
- 경로: `/home/jay/projects/InsuRo/src/pages/Pricing.tsx`
- 2-column 카드 레이아웃 (무료 / 프리미엄)
- 각 플랜별 포함 기능 리스트 (체크마크)
- 월간/연간 토글 (연간은 할인율 표시)
- 하단 CTA: "현재 플랜" 또는 "업그레이드" 버튼
- 디자인: shadcn/ui Card 기반, 프리미엄 카드는 그라디언트 보더

#### 2. App.tsx 라우트 추가
- `/pricing` 라우트 추가 (AuthGuard 안쪽, 로그인 사용자만)
- Lazy loading 적용

#### 3. AppSidebar.tsx 메뉴 추가
- "안내" 섹션 바로 아래에 "플랜 & 구독" 메뉴 항목 추가
- 아이콘: CreditCard 또는 Crown
- 현재 플랜명 배지 표시 (무료/프리미엄)

#### 4. 사이드바 하단 플랜 상태 위젯
- 사이드바 최하단 고정 (유저 정보 위)
- 현재 플랜명 + "업그레이드" 링크 (무료일 때만)
- 간결하게 1줄

#### 5. 프리미엄 잠금 UI 교체
- 기존: 사이드바 배지 + 토스트 메시지
- 변경: 프리미엄 메뉴 클릭 시 → **업그레이드 모달** 표시
  - 모달 내용: "이 기능은 프리미엄 전용입니다" + 기능 미리보기 + /pricing 링크
  - shadcn/ui Dialog 컴포넌트 사용
- 프리미엄 전용 페이지 직접 접근 시 → **Blur Overlay + CTA 오버레이**
  - `backdrop-filter: blur(8px)` + 중앙 카드(업그레이드 안내)

#### 6. 대시보드 플랜 카드
- Dashboard.tsx 최상단에 플랜 상태 카드 추가
- 무료: "무료 플랜 사용 중 · 프리미엄으로 업그레이드하면 AI 자동 포스팅 가능" + CTA
- 프리미엄: "프리미엄 · 갱신일: 2026-04-13" (간결하게)

#### 7. PlanGuard 컴포넌트
- `/home/jay/projects/InsuRo/src/components/PlanGuard.tsx`
- AuthGuard와 별도, 프리미엄 라우트에만 적용
- Props: `requiredPlan: "premium" | "free"`
- 미충족 시 → Blur Overlay + 업그레이드 CTA 표시
- `useUserPlan()` hook 생성 (Supabase user_metadata 또는 profiles 테이블에서 플랜 조회)

### 주의사항
- 현재 Supabase에 플랜 데이터가 없으므로, 일단 **모든 사용자를 무료 플랜으로 기본 처리**
- `useUserPlan()` hook은 나중에 실제 결제 연동 시 수정 가능하도록 인터페이스만 깔끔하게
- 기존 기능 깨지지 않도록 주의 (특히 AuthGuard, AppSidebar, Dashboard)
- 이미 설치된 shadcn/ui 컴포넌트 활용
- Tailwind CSS 사용
- `npx tsc --noEmit` 에러 0건 필수

### 프리미엄으로 분류할 기능 (기존 사이드바 기준)
- AI 원스탑 포스팅 (`/ai-onestop`)
- AI 포스팅 자동화 (`/ai-automation`)

### 무료로 분류할 기능
- 나머지 모든 기능

## 완료 기준
1. `/pricing` 페이지에서 무료/프리미엄 플랜 비교표 표시
2. 사이드바에 "플랜 & 구독" 메뉴 + 하단 플랜 위젯 표시
3. 프리미엄 잠금 기능 클릭 시 업그레이드 모달/Blur overlay 표시
4. 대시보드 상단에 플랜 상태 카드 표시
5. PlanGuard 컴포넌트 작동
6. 빌드 에러 없음