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:
AutonetSellCar Deploy
2025-12-30 13:24:39 +09:00
commit 1f0dcb1ddb
224 changed files with 55119 additions and 0 deletions

165
frontend/src/types/index.ts Normal file
View File

@@ -0,0 +1,165 @@
export interface CarMaker {
id: number;
code: string;
name: string;
name_en?: string;
}
export interface CarModel {
id: number;
code: string;
maker_id: number;
name: string;
name_en?: string;
}
export interface CarImage {
id: number;
url?: string;
local_path?: string;
is_main: boolean;
sort_order: number;
}
export interface Car {
id: number;
source: string;
source_id: string;
car_name?: string;
year?: number;
month?: number;
mileage?: number;
price_krw?: number;
margin_krw?: number;
final_price_krw?: number;
price_usd?: number;
is_displayed?: boolean;
fuel?: string;
transmission?: string;
color?: string;
displacement?: number;
car_number?: string;
seize_count: number;
collateral_count: number;
check_num?: string;
dealer_name?: string;
dealer_description?: string;
dealer_description_en?: string;
dealer_description_mn?: string;
dealer_description_ru?: string;
status: string;
created_at: string;
updated_at: string;
maker?: CarMaker;
model?: CarModel;
images: CarImage[];
specification?: CarSpecification;
}
export interface CarSpecification {
id: number;
car_id: number;
manufacturer?: string;
model_name?: string;
grade?: string;
model_year?: string;
fuel_type?: string;
transmission?: string;
drive_type?: string;
max_power?: string;
max_torque?: string;
fuel_efficiency?: string;
body_type?: string;
door_count?: number;
seating_capacity?: number;
length?: number;
width?: number;
height?: number;
wheelbase?: number;
curb_weight?: number;
displacement?: number;
safety_options?: string[];
comfort_options?: string[];
exterior_options?: string[];
interior_options?: string[];
raw_data?: Record<string, unknown>;
}
export interface CarListResponse {
total: number;
page: number;
page_size: number;
cars: Car[];
}
export interface User {
id: number;
email: string;
name?: string;
phone?: string;
country: string;
is_active: boolean;
is_admin: boolean;
is_dealer: boolean;
cc_balance: number;
referral_code?: string;
email_verified: boolean;
phone_verified: boolean;
created_at: string;
}
export interface CarView {
id: number;
user_id: number;
car_id: number;
cc_paid: number;
created_at: string;
}
export interface SearchFilters {
maker_id?: number;
model_id?: number;
year_min?: number;
year_max?: number;
price_min?: number;
price_max?: number;
mileage_max?: number;
fuel?: string;
}
// Hero Banner Types
export interface HeroBanner {
id: number;
// 다국어 제목 (Admin API 응답)
title_ko?: string;
title_en?: string;
title_mn?: string;
// 다국어 서브타이틀 (Admin API 응답)
subtitle_ko?: string;
subtitle_en?: string;
subtitle_mn?: string;
// 로컬라이즈된 필드 (Public API 응답)
title?: string;
subtitle?: string;
// 이미지 및 링크
image_url: string;
link_url?: string;
car_id?: number | null;
// 상태
is_active?: boolean;
display_order?: number;
// 타임스탬프
created_at?: string;
updated_at?: string;
// 관계
car?: Car;
}
export interface HeroBannerSettings {
id: number;
slide_interval: number;
animation_type: string;
image_width: number;
image_height: number;
auto_play: boolean;
}