Files
espocrm/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Contact.json
2026-03-08 19:18:17 +01:00

728 lines
24 KiB
JSON

{
"fields": {
"name": {
"type": "personName",
"isPersonalData": true
},
"salutationName": {
"type": "enum",
"options": ["", "Mr.", "Ms.", "Mrs.", "Dr."]
},
"firstName": {
"type": "varchar",
"maxLength": 100
},
"lastName": {
"type": "varchar",
"maxLength": 100,
"required": true
},
"accountAnyId": {
"notStorable": true,
"orderDisabled": true,
"customizationDisabled": true,
"utility": true,
"type": "varchar",
"where": {
"=": {
"whereClause": {
"id=s": {
"from": "AccountContact",
"select": ["contactId"],
"whereClause": {
"deleted": false,
"accountId": "{value}"
}
}
}
},
"<>": {
"whereClause": {
"id!=s": {
"from": "AccountContact",
"select": ["contactId"],
"whereClause": {
"deleted": false,
"accountId": "{value}"
}
}
}
},
"IN": {
"whereClause": {
"id=s": {
"from": "AccountContact",
"select": ["contactId"],
"whereClause": {
"deleted": false,
"accountId": "{value}"
}
}
}
},
"NOT IN": {
"whereClause": {
"id!=s": {
"from": "AccountContact",
"select": ["contactId"],
"whereClause": {
"deleted": false,
"accountId": "{value}"
}
}
}
},
"IS NULL": {
"whereClause": {
"accountId": null
}
},
"IS NOT NULL": {
"whereClause": {
"accountId!=": null
}
}
}
},
"title": {
"type": "varchar",
"maxLength": 100,
"view": "crm:views/contact/fields/title",
"directUpdateDisabled": true,
"notStorable": true,
"select": {
"select": "accountContactPrimary.role",
"leftJoins": [
[
"AccountContact",
"accountContactPrimary",
{
"contact.id:": "accountContactPrimary.contactId",
"contact.accountId:": "accountContactPrimary.accountId",
"accountContactPrimary.deleted": false
}
]
]
},
"order": {
"order": [
["accountContactPrimary.role", "{direction}"]
],
"leftJoins": [
[
"AccountContact",
"accountContactPrimary",
{
"contact.id:": "accountContactPrimary.contactId",
"contact.accountId:": "accountContactPrimary.accountId",
"accountContactPrimary.deleted": false
}
]
]
},
"where": {
"LIKE": {
"whereClause": {
"id=s": {
"from": "AccountContact",
"select": ["contactId"],
"whereClause": {
"deleted": false,
"role*": "{value}"
}
}
}
},
"NOT LIKE": {
"whereClause": {
"id!=s": {
"from": "AccountContact",
"select": ["contactId"],
"whereClause": {
"deleted": false,
"role*": "{value}"
}
}
}
},
"=": {
"whereClause": {
"id=s": {
"from": "AccountContact",
"select": ["contactId"],
"whereClause": {
"deleted": false,
"role": "{value}"
}
}
}
},
"<>": {
"whereClause": {
"id!=s": {
"from": "AccountContact",
"select": ["contactId"],
"whereClause": {
"deleted": false,
"role": "{value}"
}
}
}
},
"IS NULL": {
"whereClause": {
"NOT": {
"EXISTS": {
"from": "Contact",
"fromAlias": "sq",
"select": ["id"],
"leftJoins": [
[
"accounts",
"m",
{},
{"onlyMiddle": true}
]
],
"whereClause": {
"AND": [
{"m.role!=": null},
{"m.role!=": ""},
{"sq.id:": "contact.id"}
]
}
}
}
}
},
"IS NOT NULL": {
"whereClause": {
"EXISTS": {
"from": "Contact",
"fromAlias": "sq",
"select": ["id"],
"leftJoins": [
[
"accounts",
"m",
{},
{"onlyMiddle": true}
]
],
"whereClause": {
"AND": [
{"m.role!=": null},
{"m.role!=": ""},
{"sq.id:": "contact.id"}
]
}
}
}
}
},
"customizationOptionsDisabled": true,
"textFilterDisabled": true,
"importEnabled": true
},
"description": {
"type": "text"
},
"emailAddress": {
"type": "email",
"isPersonalData": true
},
"phoneNumber": {
"type": "phone",
"typeList": ["Mobile", "Office", "Home", "Fax", "Other"],
"defaultType": "Mobile",
"isPersonalData": true
},
"doNotCall": {
"type": "bool"
},
"address": {
"type": "address",
"isPersonalData": true
},
"addressStreet": {
"type": "text",
"maxLength": 255,
"dbType": "varchar"
},
"addressCity": {
"type": "varchar"
},
"addressState": {
"type": "varchar"
},
"addressCountry": {
"type": "varchar"
},
"addressPostalCode": {
"type": "varchar"
},
"account": {
"type": "link",
"view": "crm:views/contact/fields/account"
},
"accounts": {
"type": "linkMultiple",
"view": "crm:views/contact/fields/accounts",
"columns": {
"role": "contactRole",
"isInactive": "contactIsInactive"
},
"additionalAttributeList": ["columns"],
"orderBy": "name",
"detailLayoutIncompatibleFieldList": ["account"]
},
"accountRole": {
"type": "varchar",
"notStorable": true,
"orderDisabled": true,
"directUpdateDisabled": true,
"layoutDetailDisabled": true,
"layoutMassUpdateDisabled": true,
"layoutFiltersDisabled": true,
"layoutAvailabilityList": ["listForAccount"],
"exportDisabled": true,
"importDisabled": true,
"view": "crm:views/contact/fields/account-role",
"customizationOptionsDisabled": true,
"textFilterDisabled": true
},
"accountIsInactive": {
"type": "bool",
"notStorable": true,
"mergeDisabled": true,
"foreignAccessDisabled": true,
"select": {
"select": "accountContactPrimary.isInactive",
"leftJoins": [
[
"AccountContact",
"accountContactPrimary",
{
"contact.id:": "accountContactPrimary.contactId",
"contact.accountId:": "accountContactPrimary.accountId",
"accountContactPrimary.deleted": false
}
]
]
},
"order": {
"order": [
["accountContactPrimary.isInactive", "{direction}"]
],
"leftJoins": [
[
"AccountContact",
"accountContactPrimary",
{
"contact.id:": "accountContactPrimary.contactId",
"contact.accountId:": "accountContactPrimary.accountId",
"accountContactPrimary.deleted": false
}
]
]
},
"where": {
"= TRUE": {
"leftJoins": [
[
"AccountContact",
"accountContactFilterIsInactive",
{
"accountContactFilterIsInactive.contactId:": "id",
"accountContactFilterIsInactive.accountId:": "accountId",
"accountContactFilterIsInactive.deleted": false
}
]
],
"whereClause": {
"accountContactFilterIsInactive.isInactive": true
}
},
"= FALSE": {
"leftJoins": [
[
"AccountContact",
"accountContactFilterIsInactive",
{
"accountContactFilterIsInactive.contactId:": "id",
"accountContactFilterIsInactive.accountId:": "accountId",
"accountContactFilterIsInactive.deleted": false
}
]
],
"whereClause": {
"OR": [
{
"accountContactFilterIsInactive.isInactive!=": true
},
{
"accountContactFilterIsInactive.isInactive=": null
}
]
}
}
},
"layoutListDisabled": true,
"layoutDetailDisabled": true,
"layoutMassUpdateDisabled": true
},
"accountType": {
"type": "foreign",
"link": "account",
"field": "type",
"readOnly": true,
"view": "views/fields/foreign-enum"
},
"opportunityRole": {
"type": "enum",
"notStorable": true,
"orderDisabled": true,
"options": ["", "Decision Maker", "Evaluator", "Influencer"],
"layoutMassUpdateDisabled": true,
"layoutListDisabled": true,
"layoutDetailDisabled": true,
"customizationRequiredDisabled": true,
"customizationIsSortedDisabled": true,
"customizationAuditedDisabled": true,
"customizationReadOnlyDisabled": true,
"converterClassName": "Espo\\Classes\\FieldConverters\\RelationshipRole",
"converterData": {
"column": "role",
"link": "opportunities",
"relationName": "contactOpportunity",
"nearKey": "contactId"
},
"directUpdateDisabled": true,
"view": "crm:views/contact/fields/opportunity-role"
},
"acceptanceStatus": {
"type": "varchar",
"notStorable": true,
"orderDisabled": true,
"exportDisabled": true,
"utility": true,
"fieldManagerParamList": []
},
"acceptanceStatusMeetings": {
"type": "enum",
"notStorable": true,
"orderDisabled": true,
"directAccessDisabled": true,
"filtersEnabled": true,
"directUpdateDisabled": true,
"layoutAvailabilityList": ["filters"],
"importDisabled": true,
"exportDisabled": true,
"view": "crm:views/lead/fields/acceptance-status",
"link": "meetings",
"column": "status",
"fieldManagerParamList": []
},
"acceptanceStatusCalls": {
"type": "enum",
"notStorable": true,
"orderDisabled": true,
"directUpdateDisabled": true,
"directAccessDisabled": true,
"filtersEnabled": true,
"layoutAvailabilityList": ["filters"],
"importDisabled": true,
"exportDisabled": true,
"view": "crm:views/lead/fields/acceptance-status",
"link": "calls",
"column": "status",
"fieldManagerParamList": []
},
"campaign": {
"type": "link"
},
"createdAt": {
"type": "datetime",
"readOnly": true,
"fieldManagerParamList": [
"useNumericFormat"
]
},
"modifiedAt": {
"type": "datetime",
"readOnly": true,
"fieldManagerParamList": [
"useNumericFormat"
]
},
"createdBy": {
"type": "link",
"readOnly": true,
"view": "views/fields/user",
"fieldManagerParamList": []
},
"modifiedBy": {
"type": "link",
"readOnly": true,
"view": "views/fields/user",
"fieldManagerParamList": []
},
"assignedUser": {
"type": "link",
"view": "views/fields/assigned-user"
},
"teams": {
"type": "linkMultiple",
"view": "views/fields/teams"
},
"targetLists": {
"type": "linkMultiple",
"layoutDetailDisabled": true,
"layoutListDisabled": true,
"importDisabled": true,
"directAccessDisabled": true,
"filtersEnabled": true,
"directUpdateEnabled": true,
"noLoad": true
},
"targetList": {
"type": "link",
"notStorable": true,
"orderDisabled": true,
"layoutDetailDisabled": true,
"layoutListDisabled": true,
"layoutMassUpdateDisabled": true,
"layoutFiltersDisabled": true,
"exportDisabled": true,
"entity": "TargetList",
"directAccessDisabled": true,
"importEnabled": true
},
"portalUser": {
"type": "linkOne",
"readOnly": true,
"notStorable": true,
"view": "views/fields/link-one"
},
"hasPortalUser": {
"type": "bool",
"notStorable": true,
"readOnly": true,
"mergeDisabled": true,
"customizationDefaultDisabled": true,
"customizationReadOnlyDisabled": true,
"foreignAccessDisabled": true,
"select": {
"select": "IS_NOT_NULL:(portalUser.id)",
"leftJoins": [["portalUser", "portalUser"]]
},
"where": {
"= TRUE": {
"whereClause": {
"portalUser.id!=": null
},
"leftJoins": [["portalUser", "portalUser"]]
},
"= FALSE": {
"whereClause": {
"portalUser.id=": null
},
"leftJoins": [["portalUser", "portalUser"]]
}
},
"order": {
"order": [
["portalUser.id", "{direction}"]
],
"leftJoins": [["portalUser", "portalUser"]],
"additionalSelect": ["portalUser.id"]
}
},
"originalLead": {
"type": "linkOne",
"readOnly": true,
"view": "views/fields/link-one"
},
"targetListIsOptedOut": {
"type": "bool",
"notStorable": true,
"orderDisabled": true,
"readOnly": true,
"utility": true
},
"originalEmail": {
"type": "link",
"notStorable": true,
"orderDisabled": true,
"entity": "Email",
"customizationDisabled": true,
"layoutAvailabilityList": [],
"directAccessDisabled": true
}
},
"links": {
"createdBy": {
"type": "belongsTo",
"entity": "User"
},
"modifiedBy": {
"type": "belongsTo",
"entity": "User"
},
"assignedUser": {
"type": "belongsTo",
"entity": "User"
},
"teams": {
"type": "hasMany",
"entity": "Team",
"relationName": "entityTeam",
"layoutRelationshipsDisabled": true
},
"account": {
"type": "belongsTo",
"entity": "Account",
"deferredLoad": true
},
"accounts": {
"type": "hasMany",
"entity": "Account",
"foreign": "contacts",
"additionalColumns": {
"role": {
"type": "varchar",
"len": 100
},
"isInactive": {
"type": "bool",
"default": false
}
},
"additionalAttributeList": ["columns"],
"layoutRelationshipsDisabled": true,
"columnAttributeMap": {
"role": "accountRole",
"isInactive": "accountIsInactive"
}
},
"opportunities": {
"type": "hasMany",
"entity": "Opportunity",
"foreign": "contacts",
"columnAttributeMap": {
"role": "opportunityRole"
}
},
"opportunitiesPrimary": {
"type": "hasMany",
"entity": "Opportunity",
"foreign": "contact",
"layoutRelationshipsDisabled": true
},
"casesPrimary": {
"type": "hasMany",
"entity": "Case",
"foreign": "contact",
"layoutRelationshipsDisabled": true
},
"cases": {
"type": "hasMany",
"entity": "Case",
"foreign": "contacts"
},
"meetings": {
"type": "hasMany",
"entity": "Meeting",
"foreign": "contacts",
"audited": true,
"columnAttributeMap": {
"status": "acceptanceStatus"
}
},
"calls": {
"type": "hasMany",
"entity": "Call",
"foreign": "contacts",
"audited": true,
"columnAttributeMap": {
"status": "acceptanceStatus"
}
},
"tasks": {
"type": "hasChildren",
"entity": "Task",
"foreign": "parent",
"audited": true
},
"emails": {
"type": "hasChildren",
"entity": "Email",
"foreign": "parent",
"layoutRelationshipsDisabled": true
},
"campaign": {
"type": "belongsTo",
"entity": "Campaign",
"foreign": "contacts"
},
"campaignLogRecords": {
"type": "hasChildren",
"entity": "CampaignLogRecord",
"foreign": "parent"
},
"targetLists": {
"type": "hasMany",
"entity": "TargetList",
"foreign": "contacts",
"columnAttributeMap": {
"optedOut": "targetListIsOptedOut"
}
},
"portalUser": {
"type": "hasOne",
"entity": "User",
"foreign": "contact"
},
"originalLead": {
"type": "hasOne",
"entity": "Lead",
"foreign": "createdContact"
},
"documents": {
"type": "hasMany",
"entity": "Document",
"foreign": "contacts",
"audited": true
},
"tasksPrimary": {
"type": "hasMany",
"entity": "Task",
"foreign": "contact",
"layoutRelationshipsDisabled": true
}
},
"collection": {
"orderBy": "createdAt",
"order": "desc",
"textFilterFields": ["name", "emailAddress"]
},
"indexes": {
"createdAt": {
"columns": ["createdAt", "deleted"]
},
"createdAtId": {
"unique": true,
"columns": ["createdAt", "id"]
},
"firstName": {
"columns": ["firstName", "deleted"]
},
"name": {
"columns": ["firstName", "lastName"]
},
"assignedUser": {
"columns": ["assignedUserId", "deleted"]
}
}
}