autotrader-connect-api
Version:
Production-ready TypeScript wrapper for Auto Trader UK Connect APIs
222 lines • 5.67 kB
TypeScript
/**
* Vehicle-related types for AutoTrader API
*/
import { ImageInfo, Location, PriceRange, NumericRange, DateRange, ContactInfo } from './common';
/**
* Vehicle fuel types
*/
export type FuelType = 'Petrol' | 'Diesel' | 'Electric' | 'Hybrid' | 'Plug-in Hybrid' | 'LPG' | 'CNG' | 'Hydrogen' | 'Other';
/**
* Vehicle transmission types
*/
export type TransmissionType = 'Manual' | 'Automatic' | 'Semi-Automatic' | 'CVT' | 'Other';
/**
* Vehicle body types
*/
export type BodyType = 'Hatchback' | 'Saloon' | 'Estate' | 'SUV' | 'Coupe' | 'Convertible' | 'MPV' | 'Pickup' | 'Van' | 'Minibus' | 'Other';
/**
* Vehicle condition
*/
export type VehicleCondition = 'New' | 'Used' | 'Nearly New';
/**
* Vehicle service history
*/
export type ServiceHistory = 'Full' | 'Partial' | 'None' | 'Unknown';
/**
* Vehicle specifications
*/
export interface VehicleSpecs {
engineSize?: number;
power?: number;
torque?: number;
topSpeed?: number;
acceleration?: number;
fuelConsumption?: {
urban?: number;
extraUrban?: number;
combined?: number;
unit: 'mpg' | 'l/100km';
};
emissions?: {
co2?: number;
euroStandard?: string;
};
dimensions?: {
length?: number;
width?: number;
height?: number;
wheelbase?: number;
bootCapacity?: number;
};
weight?: {
kerb?: number;
gross?: number;
towingCapacity?: number;
};
}
/**
* Vehicle features
*/
export interface VehicleFeatures {
safety?: string[];
comfort?: string[];
technology?: string[];
performance?: string[];
exterior?: string[];
interior?: string[];
}
/**
* Vehicle history information
*/
export interface VehicleHistory {
previousOwners?: number;
serviceHistory?: ServiceHistory;
motHistory?: MOTRecord[];
accidents?: AccidentRecord[];
recalls?: RecallRecord[];
}
/**
* MOT record
*/
export interface MOTRecord {
testDate: string;
expiryDate: string;
result: 'Pass' | 'Fail' | 'Advisory';
mileage: number;
advisories?: string[];
failures?: string[];
}
/**
* Accident record
*/
export interface AccidentRecord {
date: string;
severity: 'Minor' | 'Moderate' | 'Severe';
description?: string;
repaired: boolean;
}
/**
* Recall record
*/
export interface RecallRecord {
recallNumber: string;
date: string;
description: string;
status: 'Outstanding' | 'Completed' | 'Not Applicable';
}
/**
* Main vehicle interface
*/
export interface Vehicle {
id: string;
make: string;
model: string;
variant?: string;
year: number;
registration?: string;
vin?: string;
condition: VehicleCondition;
mileage?: number;
fuelType?: FuelType;
transmission?: TransmissionType;
bodyType?: BodyType;
doors?: number;
seats?: number;
colour?: string;
price: number;
priceType: 'Fixed' | 'Negotiable' | 'POA';
vatStatus?: 'Inc' | 'Ex' | 'Qualifying';
specs?: VehicleSpecs;
features?: VehicleFeatures;
history?: VehicleHistory;
images?: ImageInfo[];
videoUrl?: string;
brochureUrl?: string;
location?: Location;
advertiser: AdvertiserInfo;
advertiserId?: number;
advertiserName?: string;
dealerId?: string;
dealerName?: string;
createdAt: string;
updatedAt: string;
availableFrom?: string;
description?: string;
keyFeatures?: string[];
warrantyMonths?: number;
financingAvailable?: boolean;
partExchangeAccepted?: boolean;
homeDeliveryAvailable?: boolean;
autotraderUrl?: string;
manufacturerUrl?: string;
}
/**
* Advertiser/dealer information
*/
export interface AdvertiserInfo {
id: number;
name: string;
type: 'Franchise' | 'Independent' | 'Private';
location?: Location;
contact?: ContactInfo;
logoUrl?: string;
website?: string;
established?: number;
specializations?: string[];
rating?: {
average: number;
reviewCount: number;
};
}
/**
* Vehicle search parameters
*/
export interface VehicleSearchParams {
make?: string | string[];
model?: string | string[];
variant?: string | string[];
yearRange?: NumericRange;
priceRange?: PriceRange;
mileageRange?: NumericRange;
condition?: VehicleCondition | VehicleCondition[];
fuelType?: FuelType | FuelType[];
transmission?: TransmissionType | TransmissionType[];
bodyType?: BodyType | BodyType[];
doors?: number | number[];
seats?: number | number[];
engineSizeRange?: NumericRange;
powerRange?: NumericRange;
postcode?: string;
radius?: number;
advertiserId?: number | number[];
advertiserName?: string | string[];
dealerId?: string | string[];
dealerType?: 'Franchise' | 'Independent' | 'Private';
features?: string | string[];
keyFeatures?: string | string[];
availableDateRange?: DateRange;
financingAvailable?: boolean;
partExchangeAccepted?: boolean;
homeDeliveryAvailable?: boolean;
warrantyIncluded?: boolean;
sortBy?: 'price' | 'mileage' | 'year' | 'distance' | 'relevance' | 'newest';
sortOrder?: 'asc' | 'desc';
page?: number;
pageSize?: number;
excludeWriteOffs?: boolean;
includeImports?: boolean;
photosOnly?: boolean;
}
/**
* Vehicle response from API
*/
export interface VehicleResponse extends Vehicle {
score?: number;
distance?: number;
priceAnalysis?: {
marketAverage?: number;
percentageAboveBelow?: number;
priceRating?: 'Excellent' | 'Good' | 'Fair' | 'High';
};
}
//# sourceMappingURL=vehicle.d.ts.map