{
  "$ref": "#/definitions/Component",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "Component": {
      "additionalProperties": false,
      "properties": {
        "columns": {
          "items": {
            "$ref": "#/definitions/IColumn"
          },
          "type": "array"
        },
        "company": {
          "$ref": "#/definitions/ICompany"
        },
        "contacts": {
          "$ref": "#/definitions/IContacts"
        },
        "cookielaw": {
          "enum": [
            "yes",
            "true",
            "no",
            "false",
            null,
            ""
          ],
          "type": [
            "string",
            "null"
          ]
        },
        "cookielawallowdecline": {
          "enum": [
            "yes",
            "true",
            "no",
            "false",
            null,
            ""
          ],
          "type": [
            "string",
            "null"
          ]
        },
        "cookielawlanguage": {
          "type": "string"
        },
        "cookielawuri4more": {
          "type": "string"
        },
        "footer": {
          "additionalProperties": false,
          "properties": {
            "disable_expanding_small": {
              "type": "boolean"
            },
            "type": {
              "enum": [
                "auto",
                "small",
                "regular",
                "large"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "i18nlang": {
          "type": "string"
        },
        "i18nlanguages": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/definitions/I18nLanguageOption"
              },
              "type": "array"
            },
            {
              "type": "string"
            }
          ]
        },
        "id": {
          "type": "string"
        },
        "navlinks": {
          "items": {
            "$ref": "#/definitions/INavLink"
          },
          "type": "array"
        },
        "page_title": {
          "type": "string"
        },
        "pagename": {
          "type": "string"
        },
        "policies": {
          "items": {
            "$ref": "#/definitions/IPolicies"
          },
          "type": "array"
        },
        "sidebar": {
          "additionalProperties": false,
          "properties": {
            "enablefooter": {
              "enum": [
                "yes",
                "no",
                "false",
                null,
                ""
              ],
              "type": [
                "string",
                "null"
              ]
            },
            "enablethemeswitch": {
              "enum": [
                "yes",
                "no",
                "false",
                null,
                ""
              ],
              "type": [
                "string",
                "null"
              ]
            },
            "logo": {
              "type": "string"
            },
            "title": {
              "type": "string"
            },
            "type": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "single_screen": {
          "type": "boolean"
        },
        "socials": {
          "$ref": "#/definitions/ISocials"
        },
        "style": {
          "type": "string"
        },
        "usermenu": {
          "$ref": "#/definitions/IUserMenu"
        }
      },
      "type": "object"
    },
    "I18nLanguageOption": {
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "label": {
          "type": "string"
        }
      },
      "required": [
        "code",
        "label"
      ],
      "type": "object"
    },
    "IAddressContact": {
      "additionalProperties": false,
      "properties": {
        "_id": {
          "type": "string"
        },
        "address": {
          "type": "string"
        },
        "googleMapUri": {
          "type": "string"
        },
        "shortAddress": {
          "type": "string"
        }
      },
      "required": [
        "address"
      ],
      "type": "object"
    },
    "IColumn": {
      "additionalProperties": false,
      "properties": {
        "_id": {
          "type": "string"
        },
        "cells": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "_id": {
                "description": "Optional in JSON; the component assigns stable ids in `$effect` when missing.",
                "type": "string"
              },
              "address": {
                "$ref": "#/definitions/IAddressContact"
              },
              "email": {
                "$ref": "#/definitions/IEmailContact"
              },
              "label": {
                "type": "string"
              },
              "phone": {
                "$ref": "#/definitions/IPhoneContact"
              },
              "site": {
                "$ref": "#/definitions/ISiteContact"
              }
            },
            "type": "object"
          },
          "type": "array"
        },
        "title": {
          "type": "string"
        }
      },
      "required": [
        "cells"
      ],
      "type": "object"
    },
    "ICompany": {
      "additionalProperties": false,
      "properties": {
        "companyName": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "fiscalCode": {
          "type": "string"
        },
        "logoUri": {
          "type": "string"
        },
        "registration": {
          "additionalProperties": false,
          "properties": {
            "since": {
              "type": "number"
            },
            "text": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "since": {
          "type": "number"
        },
        "siteName": {
          "type": "string"
        },
        "vatNumber": {
          "type": "string"
        }
      },
      "required": [
        "logoUri",
        "siteName",
        "companyName",
        "description"
      ],
      "type": "object"
    },
    "IContacts": {
      "additionalProperties": false,
      "properties": {
        "addresses": {
          "items": {
            "$ref": "#/definitions/IAddressContact"
          },
          "type": "array"
        },
        "emails": {
          "items": {
            "$ref": "#/definitions/IEmailContact"
          },
          "type": "array"
        },
        "phones": {
          "items": {
            "$ref": "#/definitions/IPhoneContact"
          },
          "type": "array"
        },
        "sites": {
          "items": {
            "$ref": "#/definitions/ISiteContact"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "IEmailContact": {
      "additionalProperties": false,
      "properties": {
        "_id": {
          "type": "string"
        },
        "address": {
          "type": "string"
        },
        "label": {
          "type": "string"
        }
      },
      "required": [
        "address"
      ],
      "type": "object"
    },
    "INavLink": {
      "additionalProperties": false,
      "properties": {
        "active": {
          "type": "boolean"
        },
        "badge": {
          "additionalProperties": false,
          "properties": {
            "class": {
              "type": "string"
            },
            "classcolor": {
              "type": "string"
            },
            "text": {
              "type": "string"
            }
          },
          "required": [
            "text"
          ],
          "type": "object"
        },
        "group": {
          "type": "string"
        },
        "icon": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "open": {
          "type": "boolean"
        },
        "subLinks": {
          "items": {
            "$ref": "#/definitions/INavLink"
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "label"
      ],
      "type": "object"
    },
    "IPhoneContact": {
      "additionalProperties": false,
      "properties": {
        "_id": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "number": {
          "type": "string"
        }
      },
      "required": [
        "number"
      ],
      "type": "object"
    },
    "IPolicies": {
      "additionalProperties": false,
      "properties": {
        "key": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "link": {
          "type": "string"
        }
      },
      "required": [
        "label",
        "key"
      ],
      "type": "object"
    },
    "ISiteContact": {
      "additionalProperties": false,
      "properties": {
        "_id": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "open": {
          "type": "boolean"
        },
        "uri": {
          "type": "string"
        }
      },
      "required": [
        "uri"
      ],
      "type": "object"
    },
    "ISocials": {
      "additionalProperties": false,
      "properties": {
        "discord": {
          "type": "string"
        },
        "facebook": {
          "type": "string"
        },
        "github": {
          "type": "string"
        },
        "gmail": {
          "type": "string"
        },
        "twitch": {
          "type": "string"
        },
        "twitter": {
          "type": "string"
        },
        "youtube": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "IUserMenu": {
      "additionalProperties": false,
      "properties": {
        "imgUri": {
          "type": "string"
        },
        "list": {
          "items": {
            "$ref": "#/definitions/IUserMenuListItem"
          },
          "type": "array"
        }
      },
      "required": [
        "imgUri"
      ],
      "type": "object"
    },
    "IUserMenuListItem": {
      "additionalProperties": false,
      "properties": {
        "badge": {
          "type": "number"
        },
        "group": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "label": {
          "type": "string"
        }
      },
      "required": [
        "key",
        "label"
      ],
      "type": "object"
    }
  }
}
