{
    "fields": {
        "name": {
            "type": "varchar",
            "required": true,
            "trim": true
        },
        "entityType": {
            "type": "enum",
            "view": "advanced:views/report/fields/entity-type",
            "readOnlyAfterCreate": true
        },
        "type": {
            "type": "enum",
            "default": "Grid",
            "options": ["Grid", "List", "JointGrid"],
            "readOnlyAfterCreate": true
        },
        "data": {
            "type": "jsonObject"
        },
        "columns": {
            "type": "jsonArray",
            "tooltip": true,
            "audited": true,
            "view": "views/fields/json-object"
        },
        "groupBy": {
            "type": "jsonArray",
            "tooltip": true,
            "audited": true,
            "view": "views/fields/json-object"
        },
        "orderBy": {
            "type": "jsonArray",
            "audited": true,
            "view": "views/fields/json-object",
            "tooltip": true
        },
        "orderByList": {
            "type": "varchar",
            "view": "advanced:views/report/fields/order-by-list"
        },
        "filters": {
            "type": "jsonArray"
        },
        "filtersDataList": {
            "type": "jsonArray",
            "audited": true,
            "view": "views/fields/json-object"
        },
        "runtimeFilters": {
            "type": "jsonArray",
            "tooltip": true
        },
        "filtersData": {
            "type": "jsonObject",
            "audited": true
        },
        "columnsData": {
            "type": "jsonObject",
            "audited": true
        },
        "chartColorList": {
            "type": "array",
            "tooltip": true,
            "view": "advanced:views/report/fields/chart-color-list",
            "validationList": [],
            "mandatoryValidationList": [
                "array",
                "arrayOfString",
                "valid"
            ],
            "doNotStoreArrayValues": true
        },
        "chartColors": {
            "type": "jsonObject"
        },
        "chartColor": {
            "type": "colorpicker",
            "maxLength": 7,
            "default": "#6FA8D6"
        },
        "chartDataList": {
            "type": "jsonArray"
        },
        "chartOneColumns": {
            "type": "multiEnum",
            "notStorable": true,
            "view": "advanced:views/report/fields/chart-columns",
            "tooltip": true
        },
        "chartOneY2Columns": {
            "type": "multiEnum",
            "notStorable": true,
            "view": "advanced:views/report/fields/chart-columns",
            "tooltip": true
        },
        "description": {
            "type": "text"
        },
        "chartType": {
            "type": "enum",
            "options": [
                "",
                "BarVertical",
                "BarHorizontal",
                "BarGroupedVertical",
                "BarGroupedHorizontal",
                "Pie",
                "Line",
                "Radar"
            ],
            "optionListMap": {
                "0": ["", "BarVertical", "BarHorizontal"],
                "1": ["", "BarVertical", "BarHorizontal", "Pie", "Line", "Radar"],
                "2": ["", "BarVertical", "BarHorizontal", "BarGroupedVertical", "BarGroupedHorizontal", "Line"]
            }
        },
        "depth": {
            "type": "int"
        },
        "isInternal": {
            "type": "bool"
        },
        "internalClassName": {
            "type": "varchar",
            "readOnly": true
        },
        "category": {
            "type": "link",
            "view": "views/fields/link-category-tree"
        },
        "createdAt": {
            "type": "datetime",
            "readOnly": true
        },
        "modifiedAt": {
            "type": "datetime",
            "readOnly": true
        },
        "createdBy": {
            "type": "link",
            "readOnly": true
        },
        "modifiedBy": {
            "type": "link",
            "readOnly": true
        },
        "assignedUser": {
            "type": "link",
            "view": "views/fields/assigned-user"
        },
        "teams": {
            "type": "linkMultiple"
        },
        "portals": {
            "type": "linkMultiple",
            "tooltip": true
        },
        "emailSendingInterval": {
            "type": "enum",
            "options": [
                "",
                "Daily",
                "Weekly",
                "Monthly",
                "Yearly"
            ]
        },
        "emailSendingSettingMonth": {
            "type": "enum",
            "dbType": "int",
            "options": ["","1","2","3","4","5","6","7","8","9","10","11","12"],
            "view": "advanced:views/report/fields/email-sending-month"
        },
        "emailSendingSettingDay": {
            "type": "enum",
            "dbType": "int",
            "view": "advanced:views/report/fields/email-sending-day",
            "options": ["","1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32"]
        },
        "emailSendingSettingWeekdays": {
            "type": "varchar",
            "view": "advanced:views/report/fields/email-sending-weekdays"
        },
        "emailSendingTime": {
            "type": "base",
            "required": true,
            "dbType": "time",
            "view": "advanced:views/report/fields/email-sending-time"
        },
        "emailSendingUsers": {
            "type": "linkMultiple",
            "tooltip": true
        },
        "emailSendingLastDateSent": {
            "type": "datetime",
            "readOnly": true
        },
        "emailSendingDoNotSendEmptyReport": {
            "type": "bool",
            "default": false
        },
        "applyAcl": {
            "type": "bool",
            "tooltip": true
        },
        "joinedReports": {
            "type": "linkMultiple",
            "entity": "Report",
            "notStorable": true,
            "columns": {
                "label": "joinedReportLabel"
            },
            "view": "advanced:views/report/fields/joined-reports"
        },
        "joinedReportLabel": {
            "type": "varchar",
            "notStorable": true,
            "utility": true
        },
        "joinedReportDataList": {
            "type": "jsonArray",
            "utility": true
        }
    },
    "links": {
        "createdBy": {
            "type": "belongsTo",
            "entity": "User"
        },
        "modifiedBy": {
            "type": "belongsTo",
            "entity": "User"
        },
        "assignedUser": {
            "type": "belongsTo",
            "entity": "User"
        },
        "teams": {
            "type": "hasMany",
            "entity": "Team",
            "relationName": "EntityTeam"
        },
        "portals": {
            "type": "hasMany",
            "entity": "Portal",
            "foreign": "reports"
        },
        "syncTargetLists": {
            "type": "hasMany",
            "entity": "TargetList",
            "foreign": "syncWithReports"
        },
        "emailSendingUsers": {
            "type": "hasMany",
            "entity": "User",
            "foreign": "reportEmailSending"
        },
        "category": {
            "type": "belongsTo",
            "foreign": "reports",
            "entity": "ReportCategory"
        }
    },
    "collection": {
        "sortBy": "name",
        "asc": true
    },
    "entityListToIgnore": [
        "Job",
        "UniqueId",
        "Role",
        "ScheduledJob",
        "ScheduledJobLogRecord",
        "PhoneNumber",
        "Notification",
        "EmailAddress",
        "EmailAccount",
        "EmailTemplate",
        "Attachment",
        "Extension",
        "InboundEmail",
        "AuthToken",
        "Integration",
        "ExternalAccount",
        "Currency",
        "Note",
        "Workflow",
        "Report",
        "Reminder",
        "PasswordChangeRequest",
        "Team",
        "GoogleCalendar",
        "GoogleCalendarUser",
        "GoogleCalendarRecurrentEvent",
        "MailChimpLogMarker",
        "MailChimp",
        "MailChimpCampaign",
        "MailChimpList",
        "MailChimpManualSync",
        "Import",
        "BpmnFlowchart",
        "WorkingTimeCalendar",
        "Template"
    ],
    "entityListAllowed": [
        "CampaignLogRecord"
    ],
    "complexExpressionFunctionList": [
        "DATE_NUMBER",
        "MONTH_NUMBER",
        "YEAR_NUMBER",
        "DAYOFWEEK_NUMBER",
        "HOUR_NUMBER",
        "MINUTE_NUMBER",
        "WEEK_NUMBER_0",
        "WEEK_NUMBER_1",
        "TRIM",
        "LENGTH"
    ],
    "complexExpressionHavingFunctionList": [
        "COUNT",
        "SUM",
        "MAX",
        "MIN",
        "AVG"
    ],
    "complexExpressionOperatorList": [
        "equals",
        "notEquals",
        "greaterThan",
        "lessThan",
        "greaterThanOrEquals",
        "lessThanOrEquals",
        "in",
        "notIn",
        "isTrue",
        "isFalse",
        "isNull",
        "isNotNull",
        "like"
    ],
    "complexExpressionHavingOperatorList": [
        "equals",
        "notEquals",
        "greaterThan",
        "lessThan",
        "greaterThanOrEquals",
        "lessThanOrEquals"
    ]
}
