{
  "$id": "https://schemas.aramis.group/catalog/vehicle-single-language-searchable-data.schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "$schema": { "type": "string", "pattern": "\/catalog\/vehicle-single-language-searchable-data\\.schema\\.json$" },
    "offer_id": { "type": "string", "minLength": 1, "description": "la reference seller de l'offre exemple \"rv578650\"" },
    "vehicle_ids": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1, "description": "la reference seller du véhicule exemple \"578650\"" }, "description": "la liste des véhicules visibles de l'offre correspondant à l'offre id" },
    "variant_vehicle_ids": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1}, "description": "la liste des véhicules visibles ordonner par leurs status et regrouper par couleurs de l'offre correspondant à l'offre id" },
    "offer_type_id": { "$ref": "./base.schema.json#/$defs/offer-type-id", "description": "type id du 1er véhicule de l'offre (les véhicules d'une même offre ont le même type)" },
    "offer_type_label": { "type": "string", "minLength": 1, "description": "type label du 1er véhicule de l'offre (les véhicules d'une même offre ont le même type)" },
    "variant_status_ids": { "type": "array", "items": { "$ref": "./base.schema.json#/$defs/status-id", "type": "string" }, "description": "la liste des ids des status des véhicules visibles de l'offre correspondant à variant_vehicles_ids" },
    "variant_status_labels": { "type": "array", "items": { "type": "string" }, "description": "la liste des labels des status des véhicules visibles de l'offre correspondant à variant_vehicles_ids" },

    "maker": { "type": "string", "minLength": 1, "description": "la marque du 1er véhicule de l'offre (les véhicules d'une même offre ont la même marque)" },
    "model": { "type": "string", "minLength": 1, "description": "le modèle du 1er véhicule de l'offre (les véhicules d'une même offre ont le même modèle)" },
    "engine": { "type": ["null", "string"], "minLength": 1, "description": "la motorisation du 1er véhicule de l'offre (les véhicules d'une même offre ont la même motorisation)" },
    "finish": { "type": ["null", "string"], "minLength": 1, "description": "la finition du 1er véhicule de l'offre (les véhicules d'une même offre ont la même finition)" },
    "energy_type_id": { "anyOf": [{ "type": "null" }, { "$ref": "./base.schema.json#/$defs/energy-type-id" }], "description": "l’énergie id du 1er véhicule de l'offre (les véhicules d'une même offre ont la même énergie)" },
    "energy_type_label": { "anyOf": [{ "type": "null" }, { "type": "string", "minLength": 1 }], "description": "l’énergie label du 1er véhicule de l'offre (les véhicules d'une même offre ont la même énergie)" },
    "transmission_id": { "$ref": "./base.schema.json#/$defs/transmission-id", "description": "la transmission id du 1er véhicule de l'offre (les véhicules d'une même offre ont la même transmission)" },
    "transmission_label": { "type": "string", "minLength": 1, "description": "la transmission label du 1er véhicule de l'offre (les véhicules d'une même offre ont la même transmission)" },
    "mileage_km": { "type": "integer", "minimum": 0, "description": "le kilométrage en km du 1er véhicule de l'offre (les véhicules d'une même offre ont la même kilométrage)" },
    "mileage_km_slice": { "type": "integer", "minimum": 0, "description": "le kilométrage en km par tranche de 1000km du 1er véhicule de l'offre " },
    "first_circulation_date": { "type": ["null", "string"], "format": "date", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", "description": "la 1er mise en circulation du 1er véhicule de l'offre (les véhicules d'une même offre ont la même 1er mise en circulation)" },
    "first_circulation_year": { "type": ["null", "integer"], "minimum": 1800, "maximum": 2100, "description": "l'année de 1er mise en circulation du 1er véhicule de l'offre" },
    "power_ch": { "type": ["null", "number"], "exclusiveMinimum": 0, "description": "la puissance din du 1er véhicule de l'offre (les véhicules d'une même offre ont la même puissance)" },
    "power_kw": { "type": ["null", "number"], "exclusiveMinimum": 0, "description": "la puissance en KW du 1er véhicule de l'offre (les véhicules d'une même offre ont la même puissance en KW)" },

    "promotion_ids": { "type": "array", "items": { "type": "string", "minLength": 1}, "description": "la liste des tags id de l'offre" },
    "promotion_labels": { "type": "array", "items": { "type": "string", "minLength": 1}, "description": "la liste des tags label de l'offre" },
    "promotion_colors": { "type": "array", "items": { "type": "string", "pattern": "^#[a-fA-F0-9]{6}$" }, "description": "la liste des couleurs des tags de l'offre" },
    "variant_photo_urls": { "type": "array", "minItems": 1, "items": { "type": ["null","string"], "format": "uri", "pattern": "^https?://" }, "description": "la liste des urls des 1ere photos des véhicules de l'offre correspondant à variant_vehicles_ids" },
    "simple_equipment_ids": { "type": "array", "minItems": 0, "items": { "$ref": "./base.schema.json#/$defs/simple-equipment-id", "type": "string" }, "description": "les pictogrammes du 1er véhicule de l'offre (les véhicules d'une même offre ont les même pictogrammes)" },
    "simple_equipment_labels": { "type": "array", "minItems": 0, "items": { "type": "string", "minLength": 1}, "description": "les pictogrammes du 1er véhicule de l'offre (les véhicules d'une même offre ont les même pictogrammes)" },

    "selling_price_with_taxes": { "type": "number", "exclusiveMinimum": 0, "description": "le prix de vente du 1er véhicule de l'offre (les véhicules d'une même offre ont la même prix de vente)" },
    "selling_price_with_taxes_slice": { "type": "number", "exclusiveMinimum": 0, "description": "le prix de vente par tanche de 1000 euros" },
    "catalog_price_with_options_with_taxes": { "type": ["null", "number"], "exclusiveMinimum": 0, "description": "le prix constructeur du 1er véhicule de l'offre (les véhicules d'une même offre ont la même prix constructeur)" },
    "discount_percent": { "type": ["null", "number"], "minimum": 0, "maximum": 100, "description": "???" },
    "selling_price_with_takeover_with_taxes": { "type": "number", "exclusiveMinimum": 0, "description": "le prix de vente du 1er véhicule de l'offre (les véhicules d'une même offre ont la même prix de vente)" },
    "selling_price_with_takeover_with_taxes_slice": { "type": "integer", "minimum": 0, "description": "le prix de vente par tanche de 1000 euros" },
    "discount_with_takeover_percent": { "type": ["null", "number"], "minimum": 0, "maximum": 100, "description": "???" },
    "takeover_premium": { "type": "number", "maximum": 0, "description": "le prix de reprise du 1er véhicule de l'offre (les véhicules d'une même offre ont la même prix de reprise)" },

    "indicative_loan_months": { "type": "integer", "exclusiveMinimum": 0, "description": "0" },
    "indicative_loan_monthly_installment": { "type": "number", "exclusiveMinimum": 0, "description": "0" },
    "indicative_loan_monthly_installment_slice": { "type": "integer", "minimum": 0, "description": "0" },

    "variant_manufacturer_colors": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1}},
    "variant_simple_color_ids": { "type": "array", "minItems": 1, "items": { "$ref": "./base.schema.json#/$defs/simple-color-id", "type": "string"}},
    "variant_simple_color_labels": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1}},
    "publication_date": { "type": "string", "format": "date", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" },
    "euronorm": { "anyOf": [{ "type": "null" }, { "$ref": "./base.schema.json#/$defs/euronorm-string"}]},
    "critair": { "anyOf": [{ "type": "null" }, { "$ref": "./base.schema.json#/$defs/critair-string"}]},
    "interior": { "type": ["null", "string"], "minLength": 1},
    "category_id": { "$ref": "./base.schema.json#/$defs/category-id" },
    "category_label": { "type": "string", "minLength": 1},
    "segment_id": { "anyOf": [{ "type": "null" }, { "$ref": "./base.schema.json#/$defs/segment-id"}]},
    "segment_label": { "type": ["null", "string"], "minLength": 1},
    "energy_type_ids": { "type": "array", "minItems": 0, "items": { "$ref": "./base.schema.json#/$defs/energy-type-id", "type": "string"}},
    "energy_type_labels": { "type": "array", "minItems": 0, "items": { "type": "string", "minLength": 1}},
    "drive_id": { "$ref": "./base.schema.json#/$defs/drive-id" },
    "drive_label": { "type": "string", "minLength": 1},
    "equipment_labels": { "type": "array", "items": { "type": "string", "minLength": 1}},
    "doors": { "type": ["null", "integer"], "exclusiveMinimum": 0},
    "seats": { "type": ["null", "integer"], "exclusiveMinimum": 0},
    "cylinders": { "type": ["null", "integer"], "exclusiveMinimum": 0},
    "engine_capacity_cc": { "type": ["null", "number"], "exclusiveMinimum": 0},
    "combined_cycle_consumption_lt_per_100km": { "type": ["null", "number"], "exclusiveMinimum": 0},
    "combined_cycle_consumption_kwh_per_100km": { "type": ["null", "number"], "exclusiveMinimum": 0}
  },
  "required": [
    "offer_id",
    "vehicle_ids",
    "variant_vehicle_ids",
    "variant_manufacturer_colors",
    "variant_simple_color_ids",
    "variant_simple_color_labels",
    "variant_photo_urls",
    "offer_type_id",
    "offer_type_label",
    "variant_status_ids",
    "variant_status_labels",
    "first_circulation_date",
    "first_circulation_year",
    "publication_date",
    "mileage_km",
    "mileage_km_slice",
    "euronorm",
    "critair",
    "catalog_price_with_options_with_taxes",
    "takeover_premium",
    "selling_price_with_taxes",
    "selling_price_with_taxes_slice",
    "discount_percent",
    "selling_price_with_takeover_with_taxes",
    "selling_price_with_takeover_with_taxes_slice",
    "discount_with_takeover_percent",
    "indicative_loan_months",
    "indicative_loan_monthly_installment",
    "indicative_loan_monthly_installment_slice",
    "maker",
    "model",
    "engine",
    "finish",
    "energy_type_id",
    "energy_type_label",
    "interior",
    "category_id",
    "category_label",
    "segment_id",
    "segment_label",
    "energy_type_ids",
    "energy_type_labels",
    "transmission_id",
    "transmission_label",
    "drive_id",
    "drive_label",
    "equipment_labels",
    "simple_equipment_ids",
    "simple_equipment_labels",
    "promotion_ids",
    "promotion_labels",
    "promotion_colors",
    "doors",
    "seats",
    "cylinders",
    "power_ch",
    "power_kw",
    "engine_capacity_cc",
    "combined_cycle_consumption_lt_per_100km",
    "combined_cycle_consumption_kwh_per_100km"
  ]
}