/**
 * ## Stock
 * Модель мета-информации об автомобиля на складе
 */
export interface Stock {
  /**
   * ## stockState
   * Статус автомобиля на складе: _ `1` – на складе _ `2` – выбыл
   */
  stockState: number;

  /**
   * ## arrivedAt
   * Дата и время приема автомобиля на склад. Для автомобилей "в пути" указывается
   * плановая дата постановки на склад
   */
  arrivedAt?: string;

  /**
   * ## outAt
   * Дата и время выбытия автомобиля со склада в формате
   * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt)
   */
  outAt?: string;

  /**
   * ## saleAt
   * Дата и время продажи автомобиля. Устанавливается автоматически датой выбытия со
   * склада, если автомобиль выбыл и причина выбытия — продажа
   */
  readonly saleAt?: string;

  /**
   * ## returnToSaleAt
   * Дата возврата в продажу в формате
   * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt)
   */
  returnToSaleAt?: string;

  /**
   * ## saleStatus
   * Статус продажи автомобиля (в продаже / не в продаже): _ `1` - В продаже _ `2` -
   * Не в продаже
   */
  saleStatus?: number;

  /**
   * ## contractType
   * Тип контракта: _ `1` – Trade-in _ `2` – Trade-in на новый _ `3` – Trade-in на бу
   * _ `4` – Комиссия _ `5` – Выкуп _ `6` – Внутренний парк
   */
  contractType?: number;

  /**
   * ## inStockPeriod
   * Срок хранения авто на складе
   */
  readonly inStockPeriod?: number;

  /**
   * ## salesTacticId
   * Идентификатор тактики продажи в CME. Если не указана — выбирается тактика по
   * умолчанию
   */
  salesTacticId?: number;

  /**
   * ## publishedDays
   * Срок публикации в днях. Считается количество дней с первого до последнего дня
   * публикации. Этот срок включает дни, в которые объявления временно были
   * неопубликованы. Значение устанавливается автоматически
   */
  readonly publishedDays?: number;

  /**
   * ## publishStartedAt
   * Дата самого первого появления объявлений о продаже авто на любом из
   * отслеживаемых сайтов. Отсутствует, если объявления еще не публиковались.
   * Значение устанавливается автоматически в формате
   * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt)
   */
  readonly publishStartedAt?: string;

  /**
   * ## publishFinishedAt
   * Дата снятия с публикации последнего опубликованного объявления. Отсутствует,
   * если есть хотя бы одно опубликованное объявление. Значение устанавливается
   * автоматически в формате [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt)
   */
  readonly publishFinishedAt?: string;

  /**
   * ## publishStatus
   * Статус публикации. Опубликован — если есть хотя бы одно опубликованное
   * объявление на отслеживаемых сайтах: _ `1` – Опубликовано _ `2` – Неопубликовано
   */
  readonly publishStatus?: number;

  /**
   * ## lastPriceChangedAt
   * Дата последнего изменения цены в формате
   * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt). Устанавливается автоматически
   * при изменении цены
   */
  readonly lastPriceChangedAt?: string;

  /**
   * ## lastPriceChangedDays
   * Количество дней, прошедших с последнего изменения цены. Устанавливается
   * автоматически при изменении цены
   */
  readonly lastPriceChangedDays?: number;

  /**
   * ## exposition
   * Способ планируемой продажи. Значение розница подразумевает продажу авто на
   * розничном рынке с публикацией объявлений на сайтах. Перекупам подразумевает
   * продажу перекупщикам или на аукционе без размещения объявлений о продаже,
   * возможные варианты: _ `1` – розница _ `2` – перекупам
   */
  exposition?: number;

  /**
   * ## inChannel
   * Канал поступления авто: _ `1` – Продажа новых — авто поступил от клиента,
   * рассматривающего покупку нового авто _ `2` – Продажа БУ — авто поступил от
   * клиента, рассматривающего покупку авто с пробегом _ `3` – Входящие звонки — авто
   * поступил от клиента, первично самостоятельно позвонившего в автосалон _ `4` –
   * Пешеходы — авто поступил от клиента, первично самостоятельно посетившего
   * автосалон _ `5` – Исходящие звонки — авто поступил от клиента, к которому был
   * сделан холодный звонок _ `6` – Объявления — авто поступил от клиента, с которого
   * "нашли" по размещенному объявлению о продаже авто _ `7` – Интернет-запрос — авто
   * поступил от клиента, первично обратившегося через форму на сайте _ `8` –
   * Внутренний парк — авто поступил из внутренного парка автосалона (например,
   * подменный авто) _ `9` – Корп. парк — авто поступил из корпоративного парка
   * компании-клиента автосалона _ `10` – Сервис — авто поступил от клиента
   * сервиса \* `11` – FI — авто поступил от клиента отдела страхования/кредитования.
   */
  inChannel?: number;

  /**
   * ## outReason
   * Причина выбытия авто со склада: _ `1` – Возврат — возврат авто владельцу; _ `2`
   * – Продажа — успешная продажа авто; \* `3` – Другая — любая другая причина.
   */
  outReason?: number;

  /**
   * ## certificated
   * Факт прохождения авто процедуры сертификации
   */
  certificated?: boolean;

  /**
   * ## objectVersion
   * Версия объекта, обычно получается вместе с объектом из API, отправляется при
   * сохранении в неизменном виде. В случае, если за время между получением и
   * отправкой объекта на сохранения состояние объекта в API изменилось, то API
   * вернет 409 Conflict, в этом случае пользователю нужно сообщить, что объект уже
   * был изменен, поэтому требуется подтверждение сохранения (в этом случае нужно
   * испольщзовать параметр `forceSave`)
   */
  objectVersion?: number;
}
