{
    "items":[
        {"id":1,"name":"Bundle 1","version":"1","description":"Lorem ipsum"},
        {"id":2,"name":"Bundle 2","version":"1","description":"Lorem ipsum"},
        {"id":3,"name":"Bundle 3","version":"1","description":"Lorem ipsum"},
        {"id":4,"name":"Bundle 4","version":"1","description":"Lorem ipsum"},
        {"id":5,"name":"Bundle 5","version":"1","description":"Lorem ipsum"}
    ],
    "category":[
        {"id":1,"name":"Core Package","description":"A basic package","version":"1"},
        {"id":2,"name":"Test Package","description":"A test package","version":"1"},
        {"id":3,"name":"Public Package","description":"A public package","version":"1"}
    ],
    "categoryItemMap" : [
        {"category_id":1,"item_id":1},
        {"category_id":1,"item_id":2},
        {"category_id":2,"item_id":2},
        {"category_id":3,"item_id":1},
        {"category_id":3,"item_id":2},
        {"category_id":3,"item_id":3}
    ],
    "categoryForm":[
        {"name":"id","value":0,"element":"input","type":"hidden","title":"Id","selector":"","required":"required"},
        {"name":"name","element":"input","type":"text","selector":"","title":"Name","required":"required","label":"Name"},
        {"name":"description","element":"input","type":"text","selector":"","title":"Description","required":"required","label":"Description"},
        {"name":"version","element":"input","type":"text","selector":"","title":"Version","required":"required","label":"Version"},
        {"name":"items","value":"","element":"select","type":"","title":"Elemente","selector":".one-row-select","options":[],"multiple":"multiple","label":"Elemente"}
    ],
    "itemsForm":[
        {"name":"id","value":0,"element":"input","type":"hidden","title":"Id","selector":"","required":"required"},
        {"name":"name","element":"input","type":"text","selector":"","title":"Bundle Name","required":"required","label":"Bundle Name"},
        {"name":"version","element":"input","type":"text","selector":"","title":"Bundle version","required":"required","label":"Bundle version"},
        {"name":"description","element":"input","type":"text","selector":"","title":"Description","required":"required","label":"Description"}
    ],
    "formType" : {
        "category": {
            "id": {
                "type": "number",
                "constraints": [
                    { "rule": "required", "message": "Id is mandatory" },
                    { "rule": "range", "params": { "min": 1, "max": 999999999 }, "message": "Id must be >= 1"}
                ]
            },
            "name": {
                "type": "text",
                "constraints": [
                    { "rule": "required", "message": "Name is mandatory" },
                    { "rule": "max_length", "params": { "value": 100 }, "message": "maximum characters 100" },
                    { "rule": "min_length", "params": { "value": 2 }, "message": "Minimal characters 2" }
                ]
            },
            "description": {
                "type": "text",
                "constraints": [
                    { "rule": "required", "message": "Description is mandatory" },
                    { "rule": "max_length", "params": { "value": 225 }, "message": "maximum characters 225" },
                    { "rule": "min_length", "params": { "value": 2 }, "message": "Minimal characters 2" }
                ]
            },
            "version": {
                "type": "text",
                "constraints": [
                    { "rule": "required", "message": "Version is mandatory" },
                    { "rule": "max_length", "params": { "value": 30 }, "message": "maximum characters 30" },
                    { "rule": "min_length", "params": { "value": 1 }, "message": "Minimal characters 1" }
                ]
            },
            "items": {
                "type": "collection",
                "constraints": [
                    {
                        "rule": "type",
                        "params": { "expected": "array" },
                        "message": "Must be an array"
                    },
                    {
                        "rule": "collection_types",
                        "params": { "allowed": ["number"] },
                        "message": "Only IDs (numbers) allowed"
                    }
                ]
            }
        },
        "item": {
            "id": {
                "type": "number",
                "constraints": [
                    { "rule": "required", "message": "Id is mandatory" },
                    {"rule": "range", "params": { "min": 1, "max": 999999999 }, "message": "Id must be >= 1"}
                ]
            },
            "name": {
                "type": "text",
                "constraints": [
                    { "rule": "required", "message": "Name is mandatory" },
                    { "rule": "max_length", "params": { "value": 100 }, "message": "maximum characters 100" },
                    { "rule": "min_length", "params": { "value": 2 }, "message": "Minimal characters 2" }
                ]
            },
            "version": {
                "type": "text",
                "constraints": [
                    { "rule": "required", "message": "Version is mandatory" },
                    { "rule": "max_length", "params": { "value": 30 }, "message": "maximum characters 30" },
                    { "rule": "min_length", "params": { "value": 1 }, "message": "Minimal characters 1" }
                ]
            },
            "description": {
                "type": "text",
                "constraints": [
                    { "rule": "required", "message": "Description is mandatory" },
                    { "rule": "max_length", "params": { "value": 225 }, "message": "maximum characters 225" },
                    { "rule": "min_length", "params": { "value": 2 }, "message": "Minimal characters 2" }
                ]
            }
        },
        "categoryItemMap": {
            "category_id": {
                "type": "number",
                "constraints": [
                    { "rule": "required", "message": "Category Id is mandatory" },
                    {"rule": "range", "params": { "min": 1, "max": 999999999 }, "message": "Id must be >= 1"}
                ]
            },
            "item_id": {
                "type": "number",
                "constraints": [
                    { "rule": "required", "message": "Item Id is mandatory" },
                    {"rule": "range", "params": { "min": 1, "max": 999999999 }, "message": "Id must be >= 1"}
                ]
            }
        }
    }
}
