Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save dragos199993/b5f04df2794a56be30aee5a35f04f0bb to your computer and use it in GitHub Desktop.
Save dragos199993/b5f04df2794a56be30aee5a35f04f0bb to your computer and use it in GitHub Desktop.
type Image {
type: String!
url: String!
}
type TrimLevel {
id: String!
type: String!
}
type TrimAttributes {
marketingPrefix: String!
label: String!
oemcode: String!
shortname: String
modelyear: String
brand: String
fullSpecsUrl: String
}
type Trim {
code: String!
trimLevels: [TrimLevel!]!
image: Image
enabled: Boolean
attributes: TrimAttributes
externalId: String
fullOldPrice: Price
primaryPrice: Price
secondaryPrice: Price
offersAware: Boolean
variantsCount: Int
variantId: String
variantName: String
marketingLabel: String
}
type Price {
currency: String!
amount: Int!
type: String!
}
type EngineAttributes {
shortdescription: String
longdescription: String
fueltype: String
powertrain: String
capacity: String
maximumpower: String
maximumtorque: String
transmission: String
maximumspeed: String
acceleration: String
tankcapacity: String
disclaimer: String
label: String!
oemcode: String!
shortname: String
modelyear: String
brand: String
fullSpecsUrl: String
}
type Engine {
code: String!
image: Image
startingPrice: Price!
attributes: EngineAttributes
}
type EngineResult {
engine: Engine!
car: Car!
}
type ModelAttributes {
label: String!
oemcode: String!
shortname: String
modelyear: String
brand: String
fullSpecsUrl: String
longdescription: String
}
type Model {
code: String!
image: Image!
rearimage: Image!
sideimage: Image!
interiorimage: Image!
startingPrice: Price!
attributes: ModelAttributes
}
type PowerTrainAttributes {
longdescription: String
label: String!
oemcode: String!
shortname: String
modelyear: String
brand: String
fullSpecsUrl: String
}
type PowerTrain {
code: String!
image: Image!
rearimage: Image!
sideimage: Image!
interiorimage: Image!
startingPrice: Price!
attributes: PowerTrainAttributes
}
type PowerTrainResult {
powerTrain: PowerTrain!
car: Car!
}
type BodyStyleAttributes {
label: String!
longdescription: String
oemcode: String!
shortname: String
modelyear: String
brand: String
fullSpecsUrl: String
}
type BodyStyle {
code: String!
image: Image!
rearimage: Image!
sideimage: Image!
interiorimage: Image!
startingPrice: Price!
attributes: BodyStyleAttributes
}
type BodyStyleResult {
bodyStyle: BodyStyle!
car: Car!
}
type SpecItem {
name: String
value: String
disclaimer: String
}
type FeatureItem {
name: String
value: String
disclaimer: String
}
type FeatureGroup {
name: String
featureItems: [FeatureItem]
}
type SpecGroup {
name: String
specItems: [SpecItem]!
}
type Variant {
code: String!
image: Image!
rearimage: Image!
sideimage: Image!
interiorimage: Image!
startingPrice: Price!
cO2: Int,
gvr: String,
fuel: String,
name: String,
year: String,
spotId: String,
dmsCode: String,
fhiCode: String,
options: String,
isHybrid: Boolean,
nvicCode: String,
bodyStyle: String,
cylinders: Int,
modelName: String,
shortName: String,
isElectric: Boolean,
seriesName: String,
specGroups: [SpecGroup]
tareWeight: Int,
insurerCode: String,
isDriveAway: Boolean,
redbookCode: String,
displayOrder: Int,
transmission: String,
combFuelCycle: Int,
featureGroups: [FeatureGroup]
engineCapacity: Int,
vehicleModelId: String,
transmissionType: String,
factoryOptionCode: String,
marketingCategory: String,
performanceRating: String
fullSpecsUrl: String
primaryPrice: Price
secondaryPrice: Price
}
type KeyFeatureDetail {
description: String!
disclaimer: String!
order: String!
}
type KeyFeature {
id: String!
title: String!
src: String!
description: String
featureDetails: [KeyFeatureDetail!]!
}
type SpecPackAttributes {
label: String!
oemcode: String!
shortname: String
modelyear: String
brand: String
fullSpecsUrl: String
}
type SpecPack {
code: String!
image: Image!
startingPrice: Price!
keyFeature: [KeyFeature!]!
attributes: SpecPackAttributes
}
type SpecPackResult {
specPack: SpecPack!
car: Car!
}
type Interior {
label: String
}
type Car {
code: String!
primaryPrice: Price!
secondaryPrice: Price
finance: FinanceSimulation
engine: Engine
model: Model
specPack: SpecPack
interior: Interior
standardFeaturesCategories: [FeatureCategory!]!
standardFeatures: [Feature!]!
images: [Image!]!
}
type TotalPrice {
basePrice: Price
originalPrice: OriginalPrice
}
type OriginalPrice {
basePrice: Price
}
enum RuleType {
INCLUDE
EXCLUDE
}
type Rule {
ruleType: RuleType
features: [Feature!]!
}
enum FeatureType {
MULTI
MUTEX0
MUTEX1
}
type FeatureCategory {
label: String,
code: String
description: String
parentCategoryCode: String
}
type Feature {
label: String,
shortDescription: String!
longDescription: String
code: String
image: Image!
price: Price
type: FeatureType
parentCategoryCode: String
}
input Filters {
trimId: String!
bodyStyleId: String
modelId: String
engineId: String
specPackId: String
powerTrainId: String
}
enum FILTER_STATUS {
SELECTED
ENABLED
DISABLED
}
type FilterCategories {
facets: [FilterCategory!]!
}
type FilterCategory {
id: String!
label: String!
options: [FilterOption]!
}
type FilterOption {
id: String!
order: Int!
label: String!
status: FILTER_STATUS!
icon: String!
}
input FeatureIdsInput {
values: [String!]
}
input SelectedCar {
code: String!
featureIds: FeatureIdsInput
}
enum FinanceFormType {
CASH
FINANCE
}
input FinanceFormInput {
type: FinanceFormType!
financeProductId: String!
financePackageId: String
paymentPeriod: Int
deposit: Int
interestRate: Float
}
type FinanceBreakdownJsonSchema {
schema: String!
}
type Finance {
cashForm(selectedCar: SelectedCar!): FinanceBreakdownJsonSchema!
initialForm(selectedCar: SelectedCar!, financeFormInput: FinanceFormInput): FinanceBreakdownJsonSchema!
financeForm(selectedCar: SelectedCar!, financeFormInput: FinanceFormInput!): FinanceBreakdownJsonSchema!
}
input SearchInput {
engineTypeId: [String]
fuelType: [String]
transmissionTypeId: [String]
minPrice: Int
maxPrice: Int
}
input FilterInput {
bodyStyle: [String]
gearbox: [String]
fuel: [String]
}
type ModelResult {
model: Model!
car: Car!
}
type TrimLevelVariants {
variants: [VariantResult]!
}
type TrimResult {
trim: Trim!
car: Car!
}
type RootQuery {
filters(filterInput: FilterInput): FilterCategories!
trim(trimId: String!): TrimResult!
trimLevels(trimId: String!): [TrimLevel!]!
catalog(searchInput: SearchInput, postCode: String, financeFormInput: FinanceFormInput): CatalogResult!
bodyStyles(filters: Filters): [BodyStyleResult!]!
trimLevelVariants(filters: Filters): TrimLevelVariants
trimLevelModels(filters: Filters): [ModelResult!]!
powerTrains(filters: Filters): [PowerTrainResult!]!
engines(filters: Filters): [EngineResult!]!
specPacks(filters: Filters): [SpecPackResult!]!
bodyStyle(id: String): BodyStyle
model(id: String): Model
powerTrain(id: String): PowerTrain
engine(id: String): Engine
specPack(id: String): SpecPack
features(filter: Filters): [Feature!]!
selectCar(carFilters: Filters, selectedFeatureIds: FeatureIdsInput, postCode: String, financeFormInput: FinanceFormInput): CustomizedCarConfiguration
}
type CatalogResult {
count: Int
searchFacets: [SearchFacet]
nodes: [TrimResult]!
}
type VariantResult {
variant: Variant!
car: Car!
}
enum SearchFacetState {
DISABLED
ENABLED
SELECTED
}
type SearchFacet {
id: String!
title: String
icon: String
state: SearchFacetState
category: String!
}
type FinanceSimulation {
paymentValue: [Price]
label: String
interestRate: Int
comparisonRate: Int
disclaimer: String
}
input SelectCarInput {
carId: String!
selectedOptions: [String!]
}
type CustomizedCarConfiguration {
car: Car
totalPrice(postCode: String): TotalPrice
postCode: String!
finance(financeFormInput: FinanceFormInput): FinanceSimulation
availableFeatureCategories: [FeatureCategory!]!
availableFeatures: [Feature!]!
}
type RootMutation {
defaultMutation: String
}
schema {
query: RootQuery
mutation: RootMutation
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment