RustyCMS: File-based headless CMS with REST API, admin UI, multilingual support
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
76
schemas/product.schema.json
Normal file
76
schemas/product.schema.json
Normal file
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"_slug": {
|
||||
"description": "Entry identifier (URL slug / filename without extension)",
|
||||
"type": "string"
|
||||
},
|
||||
"category": {
|
||||
"description": "Product category",
|
||||
"enum": [
|
||||
"electronics",
|
||||
"clothing",
|
||||
"books",
|
||||
"food",
|
||||
"other"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"created_at": {
|
||||
"format": "date-time",
|
||||
"readOnly": true,
|
||||
"type": "string"
|
||||
},
|
||||
"description": {
|
||||
"description": "Detailed product description",
|
||||
"maxLength": 5000,
|
||||
"type": "string"
|
||||
},
|
||||
"images": {
|
||||
"description": "Product image URLs (1–10)",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"maxItems": 10,
|
||||
"minItems": 1,
|
||||
"type": "array"
|
||||
},
|
||||
"in_stock": {
|
||||
"default": true,
|
||||
"description": "Whether the product is in stock",
|
||||
"type": "boolean"
|
||||
},
|
||||
"price": {
|
||||
"description": "Price in EUR",
|
||||
"minimum": 0.0,
|
||||
"type": "number"
|
||||
},
|
||||
"rating": {
|
||||
"description": "Average customer rating (null if unrated)",
|
||||
"maximum": 5.0,
|
||||
"minimum": 0.0,
|
||||
"nullable": true,
|
||||
"type": "number"
|
||||
},
|
||||
"sku": {
|
||||
"description": "Stock Keeping Unit (e.g. EL-1234, BOOK-00042)",
|
||||
"pattern": "^[A-Z]{2,4}-\\d{3,6}$",
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"description": "Product name",
|
||||
"maxLength": 200,
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"_slug",
|
||||
"title",
|
||||
"sku",
|
||||
"price",
|
||||
"category"
|
||||
],
|
||||
"type": "object"
|
||||
}
|
||||
Reference in New Issue
Block a user