Files
AutonetSellCar/docs/DEPENDENCIES.md
AutonetSellCar Deploy 1f0dcb1ddb Initial commit: AutonetSellCar platform with deployment system
- Frontend: Next.js 14 with TypeScript
- Backend: FastAPI with SQLAlchemy
- Agent: Carmodoo sync agent
- Deployment: Docker Compose based staging/production setup
- Scripts: Automated deployment with rollback support

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 13:24:39 +09:00

6.8 KiB

AutonetSellCar Dependencies Documentation

Overview

이 문서는 주요 기능 간의 의존성을 명시합니다. 기능 추가/수정 시 영향 범위를 파악하는 데 사용합니다.


1. 성능점검표 (Performance Check) 의존성

1.1 Backend 의존성

app/api/carmodoo.py
├── get_car_performance_check()      # 성능점검표 조회
│   ├── models.CarPerformanceCheck   # DB 모델
│   ├── models.PerformanceCheckView  # 0.1 CC 결제 기록
│   ├── models.CarView               # 1 CC 결제 기록
│   └── auth.get_current_user_optional
│
├── get_car_performance_check_pdf()  # PDF 다운로드
│   ├── models.CarPerformanceCheck
│   ├── models.PerformanceCheckView
│   ├── models.CarView
│   ├── auth.get_current_user        # 로그인 필수
│   └── services.pdf_service
│
app/api/cc.py
├── purchase_performance_check_view() # 0.1 CC 결제
│   ├── models.User
│   ├── models.PerformanceCheckView
│   └── CC 차감 로직

1.2 Frontend 의존성

app/cars/[id]/page.tsx
├── ccApi.getPerformanceCheck()       # API 호출
├── ccApi.purchasePerformanceCheck()  # 결제 API
├── ccApi.downloadPerformanceCheckPdf()
├── hasPerformanceCheckAccess         # 상태
└── performanceCheck                  # 데이터

lib/api.ts
├── ccApi.getPerformanceCheck()
├── ccApi.purchasePerformanceCheck()
└── ccApi.downloadPerformanceCheckPdf()

1.3 비즈니스 로직 의존성

성능점검표 접근 권한 판단:
┌─────────────────────────────────────────────┐
│ 1. current_user.is_admin == True → 허용     │
│ 2. PerformanceCheckView 존재 → 허용         │
│ 3. CarView 존재 → 허용                      │
│ 4. 그 외 → 거부                             │
│                                             │
│ ※ HeroBanner 여부와 무관                    │
└─────────────────────────────────────────────┘

2. 배너 차량 (Hero Banner) 의존성

2.1 Backend 의존성

app/api/hero_banners.py
├── check_car_is_banner()            # 배너 차량 확인
│   └── models.HeroBanner
│
├── get_active_banners()             # 활성 배너 목록
│   └── models.HeroBanner

2.2 Frontend 의존성

app/cars/[id]/page.tsx
├── checkBannerCar()                 # 배너 여부 확인
├── isBannerCar                      # 상태
└── 이미지/연락처 표시 로직

components/FilmStripSlider.tsx
└── 배너 클릭 시 /cars/{id}로 이동

2.3 배너 차량이 영향을 주는 기능

기능 영향 설명
차량 이미지 O 무료로 전체 공개
딜러 연락처 O 무료로 공개
성능점검표 X 여전히 0.1 CC 필요

3. CC 결제 시스템 의존성

3.1 결제 타입별 영향

┌─────────────────────────────────────────────────────────┐
│ 0.1 CC 결제 (purchase_performance_check)                │
├─────────────────────────────────────────────────────────┤
│ → PerformanceCheckView 생성                             │
│ → 성능점검표만 접근 가능                                │
│ → 이미지/연락처는 별도                                  │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│ 1 CC 결제 (purchase_car_view)                           │
├─────────────────────────────────────────────────────────┤
│ → CarView 생성                                          │
│ → 모든 이미지 접근 가능                                 │
│ → 딜러 연락처 접근 가능                                 │
│ → 성능점검표 접근 가능 (포함)                           │
└─────────────────────────────────────────────────────────┘

3.2 파일 의존성 맵

app/api/cc.py
├── purchase_performance_check_view()
│   ├── models.User.cc_balance
│   ├── models.PerformanceCheckView (생성)
│   └── CC_PERFORMANCE_CHECK_COST = 0.1
│
├── purchase_car_view()
│   ├── models.User.cc_balance
│   ├── models.CarView (생성)
│   └── CC_VIEW_COST = 1.0

4. 수정 시 체크리스트

4.1 성능점검표 로직 수정 시

  • backend/app/api/carmodoo.py - get_car_performance_check()
  • backend/app/api/carmodoo.py - get_car_performance_check_pdf()
  • backend/app/api/cc.py - purchase_performance_check_view()
  • frontend/src/app/cars/[id]/page.tsx
  • frontend/src/lib/api.ts
  • docs/BUSINESS_LOGIC.md 업데이트
  • backend/tests/test_performance_check.py 테스트 실행
  • backend/tests/test_integration_performance_check.py 테스트 실행

4.2 배너 차량 로직 수정 시

  • backend/app/api/hero_banners.py
  • frontend/src/app/cars/[id]/page.tsx - checkBannerCar()
  • frontend/src/components/FilmStripSlider.tsx
  • docs/BUSINESS_LOGIC.md 업데이트

4.3 CC 결제 로직 수정 시

  • backend/app/api/cc.py
  • frontend/src/lib/api.ts
  • frontend/src/app/cars/[id]/page.tsx
  • docs/BUSINESS_LOGIC.md 업데이트

5. 변경 이력

날짜 변경 내용 작성자
2024-12-23 최초 문서 작성 Claude

6. 주의사항

절대 잊지 말아야 할 규칙

  1. 배너 차량 ≠ 모든 정보 무료

    • 이미지, 연락처만 무료
    • 성능점검표는 0.1 CC 필요
  2. 성능점검표 접근 로직 수정 시

    • carmodoo.py의 두 함수 모두 수정 필요
    • get_car_performance_check() + get_car_performance_check_pdf()
  3. 테스트 필수

    • 모든 사용자 유형 x 차량 유형 조합 테스트
    • 비로그인, 로그인(미결제), 로그인(0.1CC), 로그인(1CC), 관리자