diff --git a/src/content/schema-categories.json b/src/content/schema-categories.json new file mode 100644 index 0000000..f26f643 --- /dev/null +++ b/src/content/schema-categories.json @@ -0,0 +1,49 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Service category", + "type": "object", + "required": [ "title", "description", "id", "image", "services"], + "additionalProperties": false, + "properties": { + "title": { + "type": "string", + "description": "Name of the category of services", + "minLength": 4, + "default": "Permanentní makeup" + }, + "description": { + "title": "Description of the category", + "type": "string", + "description": "description :D", + "default": "A description of a description" + }, + "id": { + "type": "string", + "description": "a short handle used in urls", + "default": "pmu", + "minLength": 3 + }, + "image": { + "title": "Image", + "description": "A featured image in previews and on top of page", + "type": "string", + "format": "uri" + }, + "tags": { + "title": "tags", + "description": "Tags of the services, e.g. 'pmu'", + "type": "array", + "items": { + + "type": "string" + } + }, + "services": { + "title": "services under the category", + "type": "array", + "items": { + "$ref": "./schema-services.json" + } + } + } +} diff --git a/src/content/schema-services.json b/src/content/schema-services.json new file mode 100644 index 0000000..9a6523a --- /dev/null +++ b/src/content/schema-services.json @@ -0,0 +1,62 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Service", + "type": "object", + "required": [ "title", "description", "id", "image", "duration", "price"], + "additionalProperties": false, + "properties": { + "title": { + "type": "string", + "description": "Name of the service" + }, + "description": { + "title": "Description", + "type": "string", + "description": "description :D", + "default": "A description of a description" + }, + "id": { + "type": "string", + "description": "a short handle used in urls and on cal.com", + "default": "pmu", + "minLength": 3 + }, + "image": { + "title": "Image", + "description": "A featured image in previews and on top of page", + "type": "string", + "format": "uri" + }, + "price": { + "title": "Price", + "description": "Price of the product", + "oneOf": [ + { + "type": "number", + "description": "Price of the service as a number", + "default": 300 + }, + { + "type": "string", + "description": "Price of the service as a text description (e.g., 'Free')", + "default": "na dohode" + } + ] + }, + "duration": { + "title": "Duration", + "description": "How long will the procedure take? (can be on demand or specific amount)", + "oneOf": [ + { + "type": "number", + "description": "Duration of the service in minutes (e.g., 60)", + "minimum": 15 + }, + { + "type": "string", + "description": "Duration of the service as a text description (e.g., 'on demand')" + } + ] + } + } +}