import { StockCar } from './stock-car';
import { Stock } from './stock';
import { StockGoalsControl } from './stock-goals-control';
import { StockAppraisal } from './stock-appraisal';
import { StockAppraisalCarSearch } from './stock-appraisal-car-search';
import { SimilarCarSearch } from './similar-car-search';
import { DictionaryValueMeta } from './dictionary-value-meta';

/**
 * Объект `StockCar`, `Stock`, `StockGoalsControl`, `StockAppraisal`,
 * `StockAppraisalCarSearch`, `SimilarCarSearch` и `DictionaryValueMeta`
 */
export interface GetStockCarByIdResponse {
  /**
   * ## StockCar
   * Модель автомобиля в контексте склада.
   */
  stockCar?: StockCar;

  /**
   * ## Stock
   * Модель мета-информации об автомобиля на складе
   */
  stock?: Stock;

  /**
   * ## StockGoalsControl
   * Модель описания целевых показателей, проблем и пороговых значений к ним
   */
  stockGoalsControl?: StockGoalsControl;

  /**
   * ## StockAppraisal
   * Модель мета-информации об оценке стокового автомобиля `StockCar`
   */
  stockAppraisal?: StockAppraisal;

  /**
   * ## StockAppraisalCarSearch
   * Модель параметров поиска для `StockAppraisal`
   */
  stockAppraisalCarSearch?: StockAppraisalCarSearch;

  /**
   * ## SimilarCarSearch
   * Модель, описывающая набор свойств автомобиля, по которым может быть произведен
   * поиск `SimilarCar` Сущность этой модели может быть отредактирована, например,
   * вручную пользователем, и набор параметров может кардинально отличаться от
   * исходной сущности `Car`, из которой изначально генерируется `SimilarCarSearch`.
   */
  similarCarSearch?: SimilarCarSearch;

  dictionaryValueMeta?: {
    stockCar?: {
      [key: string]: Array<DictionaryValueMeta>;
    };

    stock?: {
      [key: string]: Array<DictionaryValueMeta>;
    };

    stockAppraisal?: {
      [key: string]: Array<DictionaryValueMeta>;
    };

    stockAppraisalCarSearch?: {
      [key: string]: Array<DictionaryValueMeta>;
    };

    similarCarSearch?: {
      [key: string]: Array<DictionaryValueMeta>;
    };
  };
}
