import { IntRange } from './int-range';
import { NumRange } from './num-range';
import { BodyDoors } from './body-doors';
import { Region } from './region';

/**
 * ## StockAppraisalCarSearch
 * Модель параметров поиска для `StockAppraisal`
 */
export interface AppraisalCarSearch {
  /**
   * ## Brand
   * Наименование производителя
   */
  brand?: number;

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

  generation?: Array<number>;

  /**
   * ## IntRange
   * Модель, описывающая диапазон целочисленных значений
   */
  creationYear?: IntRange;

  /**
   * ## IntRange
   * Модель, описывающая диапазон целочисленных значений
   */
  enginePower?: IntRange;

  /**
   * ## NumRange
   * Модель, описывающая диапазон вещественных значений
   */
  engineVolume?: NumRange;

  engineType?: Array<number>;

  vehicleType?: Array<number>;

  wheelType?: Array<number>;

  driveType?: Array<number>;

  gearType?: Array<number>;

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

  /**
   * Регион (Geo-объект или координаты с радиусом)
   */
  region?: Region;
}
