{
    "fields": {
        "name": {
            "type": "varchar",
            "maxLength": 100
        },
        "campaign": {
            "type": "link"
        },
        "isActive": {
            "type": "bool",
            "default": true
        },
        "subscribeToTargetList": {
            "type": "bool",
            "default": true
        },
        "subscribeContactToTargetList": {
            "type": "bool",
            "default": true
        },
        "targetList": {
            "type": "link"
        },
        "fieldList": {
            "type": "multiEnum",
            "default": ["firstName", "lastName", "emailAddress"],
            "view": "views/lead-capture/fields/field-list",
            "required": true,
            "ignoreFieldList": [
                "targetList",
                "targetLists",
                "acceptanceStatusMeetings",
                "acceptanceStatusCalls",
                "campaign",
                "source",
                "teams",
                "createdOpportunity",
                "createdAccount",
                "createdContact"
            ]
        },
        "duplicateCheck": {
            "type": "bool",
            "default": true
        },
        "optInConfirmation": {
            "type": "bool"
        },
        "optInConfirmationEmailTemplate": {
            "type": "link"
        },
        "optInConfirmationLifetime": {
            "type": "int",
            "default": 48,
            "min": 1
        },
        "optInConfirmationSuccessMessage": {
            "type": "text",
            "tooltip": true
        },
        "createLeadBeforeOptInConfirmation": {
            "type": "bool"
        },
        "skipOptInConfirmationIfSubscribed": {
            "type": "bool"
        },
        "leadSource": {
            "type": "enum",
            "customizationOptionsDisabled": true,
            "optionsPath": "entityDefs.Lead.fields.source.options",
            "translation": "Lead.options.source",
            "default": "Web Site"
        },
        "apiKey": {
            "type": "varchar",
            "maxLength": 36,
            "readOnly": true,
            "view": "views/lead-capture/fields/api-key"
        },
        "targetTeam": {
            "type": "link"
        },
        "exampleRequestUrl": {
            "type": "varchar",
            "notStorable": true,
            "readOnly": true,
            "copyToClipboard": true
        },
        "exampleRequestMethod": {
            "type": "varchar",
            "notStorable": true,
            "readOnly": true
        },
        "exampleRequestPayload": {
            "type": "text",
            "notStorable": true,
            "readOnly": true,
            "seeMoreDisabled": true
        },
        "exampleRequestHeaders": {
            "type": "array",
            "notStorable": true,
            "readOnly": true
        },
        "inboundEmail": {
            "type": "link"
        },
        "smtpAccount": {
            "type": "base",
            "notStorable": true,
            "view": "views/lead-capture/fields/smtp-account"
        },
        "phoneNumberCountry": {
            "type": "enum",
            "view": "views/lead-capture/fields/phone-number-country",
            "maxLength": 2
        },
        "createdAt": {
            "type": "datetime",
            "readOnly": true
        },
        "modifiedAt": {
            "type": "datetime",
            "readOnly": true
        },
        "createdBy": {
            "type": "link",
            "readOnly": true
        },
        "modifiedBy": {
            "type": "link",
            "readOnly": true
        }
    },
    "links": {
        "createdBy": {
            "type": "belongsTo",
            "entity": "User"
        },
        "modifiedBy": {
            "type": "belongsTo",
            "entity": "User"
        },
        "targetList": {
            "type": "belongsTo",
            "entity": "TargetList"
        },
        "campaign": {
            "type": "belongsTo",
            "entity": "Campaign"
        },
        "targetTeam": {
            "type": "belongsTo",
            "entity": "Team"
        },
        "inboundEmail": {
            "type": "belongsTo",
            "entity": "InboundEmail"
        },
        "optInConfirmationEmailTemplate": {
            "type": "belongsTo",
            "entity": "EmailTemplate"
        },
        "logRecords": {
            "type": "hasMany",
            "entity": "LeadCaptureLogRecord",
            "foreign": "leadCapture"
        }
    },
    "collection": {
        "orderBy": "name",
        "order": "asc"
    }
}
