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;
}
