{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "title": "Item",
    "description": "Item Metadata",
    "properties": {
        "name": {
            "type": "string",
            "title": "Item Name",
            "description": "The name of the Item"
        },
        "category": {
            "title": "Category",
            "description": "The category of the item",
            "type": "string"
        },
        "variants": {
            "type": "object",
            "minProperties": 1,
            "title": "Item Variant",
            "description": "A Variant of an Item",
            "properties": {
                "name": {
                    "type": "string",
                    "title": "Variant Name",
                    "description": "The name of the Variant"
                },
                "min": {
                    "type": "number",
                    "title": "Minimum inventory",
                    "description": "The minimum amount of inventory for an Item. Thre actual inventory amount should always be higher than that."
                },
                "expiry": {
                    "type": "number",
                    "title": "Expiry days",
                    "description": "Number of days until this item variant is considered expired."
                },
                "barcodes": {
                    "type": "array",
                    "title": "Associated Barcodes",
                    "description": "Associated Barcodes",
                    "items": {
                        "type": "number",
                        "title": "Barcode"
                    }
                }
            }
        }
    },
    "required": [
        "name",
        "variants"
    ]
}