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>
This commit is contained in:
194
docs/DEPENDENCIES.md
Normal file
194
docs/DEPENDENCIES.md
Normal file
@@ -0,0 +1,194 @@
|
||||
# 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), 관리자
|
||||
Reference in New Issue
Block a user