{
    "fields": {
        "name": {
            "type": "varchar",
            "maxLength": 100,
            "pattern": "$noBadCharacters"
        },
        "logo": {
            "type": "image"
        },
        "url": {
            "type": "url",
            "notStorable": true,
            "readOnly": true,
            "loaderClassName": "Espo\\Classes\\FieldProcessing\\Portal\\UrlLoader"
        },
        "customId": {
            "type": "varchar",
            "maxLength": 36,
            "view": "views/portal/fields/custom-id",
            "index": true
        },
        "isActive": {
            "type": "bool",
            "default": true
        },
        "isDefault": {
            "type": "bool",
            "default": false,
            "notStorable": true
        },
        "portalRoles": {
            "type": "linkMultiple"
        },
        "tabList": {
            "type": "array",
            "view": "views/portal/fields/tab-list",
            "validationList": [
                "array",
                "required"
            ],
            "suppressValidationList": [
                "arrayOfString"
            ],
            "doNotStoreArrayValues": true
        },
        "quickCreateList": {
            "type": "array",
            "translation": "Global.scopeNames",
            "view": "views/portal/fields/quick-create-list"
        },
        "applicationName": {
            "type": "varchar"
        },
        "companyLogo": {
            "type": "image"
        },
        "theme": {
            "type": "enum",
            "view": "views/preferences/fields/theme",
            "translation": "Global.themes"
        },
        "themeParams": {
            "type": "jsonObject"
        },
        "language": {
            "type": "enum",
            "view": "views/preferences/fields/language"
        },
        "timeZone": {
            "type": "enum",
            "view": "views/preferences/fields/time-zone"
        },
        "dateFormat": {
            "type": "enum",
            "view": "views/preferences/fields/date-format"
        },
        "timeFormat": {
            "type": "enum",
            "view": "views/preferences/fields/time-format"
        },
        "weekStart": {
            "type": "enumInt",
            "options": [0, 1, 2, 3, 4, 5, 6],
            "default": -1,
            "view": "views/preferences/fields/week-start"
        },
        "defaultCurrency": {
            "type": "enum",
            "view": "views/preferences/fields/default-currency"
        },
        "dashboardLayout": {
            "type": "jsonArray",
            "view": "views/settings/fields/dashboard-layout"
        },
        "dashletsOptions": {
            "type": "jsonObject",
            "utility": true
        },
        "customUrl": {
            "type": "url"
        },
        "layoutSet": {
            "type": "link",
            "tooltip": true
        },
        "authenticationProvider": {
            "type": "link"
        },
        "authTokenLifetime": {
            "type": "float",
            "min": 0,
            "tooltip": "Settings.authTokenMaxIdleTime"
        },
        "authTokenMaxIdleTime": {
            "type": "float",
            "min": 0,
            "tooltip": "Settings.authTokenMaxIdleTime"
        },
        "description": {
            "type": "text"
        },
        "modifiedAt": {
            "type": "datetime",
            "readOnly": true
        },
        "modifiedBy": {
            "type": "link",
            "readOnly": true,
            "view": "views/fields/user"
        },
        "createdAt": {
            "type": "datetime",
            "readOnly": true
        },
        "createdBy": {
            "type": "link",
            "readOnly": true,
            "view": "views/fields/user"
        }
    },
    "links": {
        "createdBy": {
            "type": "belongsTo",
            "entity": "User"
        },
        "modifiedBy": {
            "type": "belongsTo",
            "entity": "User"
        },
        "users": {
            "type": "hasMany",
            "entity": "User",
            "foreign": "portals"
        },
        "portalRoles": {
            "type": "hasMany",
            "entity": "PortalRole",
            "foreign": "portals"
        },
        "notes": {
            "type": "hasMany",
            "entity": "Note",
            "foreign": "portals"
        },
        "layoutSet": {
            "type": "belongsTo",
            "entity": "LayoutSet",
            "foreign": "portals"
        },
        "authenticationProvider": {
            "type": "belongsTo",
            "entity": "AuthenticationProvider"
        }
    },
    "collection": {
        "orderBy": "name",
        "order": "asc"
    }
}
