import { BodyDoors } from './body-doors';
import { Geo } from './geo';

/**
 * ## SimilarCar
 * Модель похожего предложения автомобиля, найденного с использованием `Car` или
 * `SimilarCarSearch`
 */
export interface SimilarCar {
  /**
   * ## SdocId
   * Внешний идентификатор в виде 128-битного хеша
   */
  id?: string;

  /**
   * ## Brand
   * Наименование производителя
   */
  brand?: number;

  /**
   * ## Model
   * Модель
   */
  model?: number;

  /**
   * ## CreationYear
   * Год производства авто
   */
  creationYear?: number;

  /**
   * ## Generation
   * Поколение
   */
  generationType?: number;

  /**
   * ## BodyDoors
   * Комплексное свойство содержащее в себе объединение двух типов свойств — Doors и
   * BodyType
   */
  bodyDoors?: BodyDoors;

  /**
   * ## WheelType
   * Левый/Правый руль
   */
  wheelType?: number;

  /**
   * ## GearType
   * Тип коробки передач
   */
  gearType?: number;

  /**
   * ## DriveType
   * Тип привода
   */
  driveType?: number;

  /**
   * ## EngineType
   * Тип двигателя
   */
  engineType?: number;

  /**
   * ## EngineVolume
   * Объем двигателя автомобиля в литрах
   */
  engineVolume?: number;

  /**
   * ## EnginePower
   * Мощность двигателя автомобиля в лошадиных силах
   */
  enginePower?: number;

  /**
   * ## Mileage
   * Пробег ТС в километрах
   */
  mileage?: number;

  /**
   * ## Color
   * Цвет ТС
   */
  color?: number;

  /**
   * ## VehicleType
   * Тип транспортного средства
   */
  vehicleType?: number;

  /**
   * Предложение опубликовано
   */
  readonly active?: boolean;

  /**
   * Тип продавца: `1` – частное лицо `2` – автосалон
   */
  ownerType?: number;

  /**
   * Количество владельцов в ПТС
   */
  ownersAmount?: number;

  /**
   * Число владельцев больше двух. Выставляется, если на источнике информация о
   * количестве раскрывается не полностью – например, 2 и более
   */
  readonly hasMoreOwners?: boolean;

  /**
   * VIN автомобиля проверен автокодом
   */
  readonly isAutocodeChecked?: boolean;

  /**
   * Автомобиль растоможен
   */
  readonly customs?: boolean;

  /**
   * Автомобиль под заказ
   */
  readonly orderOnly?: boolean;

  /**
   * ## Простое словарное значение
   * Тип сертификации
   */
  readonly certificationType?: number;

  /**
   * Гарантия до
   */
  readonly warrantyTill?: string;

  /**
   * ## Price
   * Цена, в рублях.
   */
  readonly price?: any;

  source?: Array<number>;

  /**
   * ## Url
   * Ссылка на внешний ресурс
   */
  readonly url?: string;

  /**
   * Описание предложения
   */
  readonly description?: string;

  /**
   * Дата начала публикации предложения в формате date-time
   * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt)
   */
  readonly startDate?: string;

  /**
   * Дата окончания публикации предложения в формате date-time
   * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt)
   */
  readonly endDate?: string;

  /**
   * Универсальная модель для представления географических объектов (города, регионы,
   * страны). Модель содержит в себе описания, сокращения и идентификатор.
   */
  geo?: Geo;

  /**
   * Название внешнего автосалона предложения на источнике
   */
  readonly dealerTitle?: string;
}
