ldc-showroom-bo/schemas/range.schema.json

109 lines
2.8 KiB
JSON

{
"title": "Range",
"description": "A range from Showroom Bo",
"type": "object",
"properties": {
"id": {
"description": "The unique identifier for a range",
"type": "integer",
"minimum": 1
},
"name": {
"description": "Nom de la gamme",
"type": "object",
"properties": {
"fr": {
"type": "string",
"minLength": 2,
"maxLength": 90
}
},
"additionalProperties": {
"type": "string",
"minLength": 2,
"maxLength": 90
}
},
"slug": {
"description": "Slug de la gamme",
"type": "object",
"properties": {
"fr": {
"type": "string",
"maxLength": 255
}
},
"additionalProperties": {
"type": "string",
"maxLength": 255
}
},
"picture": {
"description": "Logo de la gamme, chemin tel que présent dans le zip",
"type": "string"
},
"color": {
"description": "Couleur de la gamme",
"$ref": "#/$defs/hexcolor"
},
"width": {
"description": "Largeur de la gamme 1 colonne ou 2 colonnes (pleine largeur)",
"type": "integer",
"minimum": 1,
"maximum": 2
},
"order": {
"description": "Ordre d'affichage de la gamme",
"type": "integer",
"minimum": 1
},
"status": {
"description": "Visible ? (présent dans l'export).",
"type": "boolean"
},
"brand_id": {
"description": "Clé étrangère de la marque",
"type": "integer",
"minimum": 1
},
"font_id": {
"description": "Clé étrangère de la police",
"type": "integer",
"minimum": 1
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
},
"products": {
"type": "array",
"items": {
"$ref": "product.schema.json"
}
}
},
"$defs": {
"hexcolor": {
"description": "HEX color",
"pattern": "^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$",
"type": "string"
}
},
"required": [
"id",
"name",
"slug",
"picture",
"order",
"status",
"brand_id",
"font_id",
"created_at",
"updated_at",
"products"
]
}