[
  {
    "context":"xtuple",
    "nameSpace":"XM",
    "type":"Account",
    "table":"crmacct",
    "isRest":true,
    "lockable":true,
    "idSequenceName": "crmacct_crmacct_id_seq",
    "orderSequence":"CRMAccountNumber",
    "comment":"Account Map",
    "privileges":{
      "all":{
        "create":"MaintainAllCRMAccounts",
        "read":"ViewAllCRMAccounts",
        "update":"MaintainAllCRMAccounts",
        "delete":"MaintainAllCRMAccounts"
      },
      "personal":{
        "create":"MaintainPersonalCRMAccounts",
        "read":"ViewPersonalCRMAccounts",
        "update":"MaintainPersonalCRMAccounts",
        "delete":"MaintainPersonalCRMAccounts",
        "properties":[
          "owner.username",
          "number"
        ]
      },
      "attribute": {
        "owner": {
          "create": "EditOwner",
          "update": "EditOwner"
        }
      }
    },
    "properties":[
      {
        "name":"id",
        "attr":{
          "type":"Number",
          "column":"crmacct_id",
          "isPrimaryKey":true
        }
      },
      {
        "name":"number",
        "attr":{
          "type":"String",
          "column":"crmacct_number",
          "isNaturalKey":true,
          "required": true
        }
      },
      {
        "name":"name",
        "attr":{
          "type":"String",
          "column":"crmacct_name",
          "required":true
        }
      },
      {
        "name":"isActive",
        "attr":{
          "type":"Boolean",
          "column":"crmacct_active",
          "required":true
        }
      },
      {
        "name":"accountType",
        "attr":{
          "type":"String",
          "column":"crmacct_type",
          "required":true
        }
      },
      {
        "name":"parent",
        "toOne":{
          "isNested":true,
          "type":"AccountRelation",
          "column":"crmacct_parent_id",
          "inverse":"id"
        }
      },
      {
        "name":"notes",
        "attr":{
          "type":"String",
          "column":"crmacct_notes"
        }
      },
      {
        "name":"primaryContact",
        "toOne":{
          "isNested":true,
          "type":"ContactRelation",
          "column":"crmacct_cntct_id_1",
          "inverse":"id"
        }
      },
      {
        "name":"secondaryContact",
        "toOne":{
          "isNested":true,
          "type":"ContactRelation",
          "column":"crmacct_cntct_id_2",
          "inverse":"id"
        }
      },
      {
        "name":"contactRelations",
        "toMany":{
          "type":"ContactRelation",
          "column":"crmacct_number",
          "inverse":"account"
        }
      },
      {
        "name":"owner",
        "toOne":{
          "isNested":true,
          "type":"UserAccountRelation",
          "column":"crmacct_owner_username",
          "inverse":"username"
        }
      },
      {
        "name":"userAccount",
        "toOne":{
          "isNested":true,
          "type":"UserAccountRelation",
          "column":"crmacct_usr_username",
          "inverse":"username"
        }
      },
      {
        "name":"employee",
        "toOne":{
          "isNested": true,
          "type":"EmployeeRelation",
          "column":"crmacct_emp_id"
        }
      },
      {
        "name":"salesRep",
        "toOne":{
          "type":"SalesRep",
          "column":"crmacct_salesrep_id"
        }
      },
      {
        "name":"taxAuthority",
        "toOne":{
          "isNested":true,
          "type":"TaxAuthorityRelation",
          "column":"crmacct_taxauth_id"
        }
      },
      {
        "name":"partner",
        "attr":{
          "type":"Number",
          "column":"crmacct_partner_id"
        }
      },
      {
        "name":"competitor",
        "attr":{
          "type":"Number",
          "column":"crmacct_competitor_id"
        }
      },
      {
        "name": "documents",
        "toMany": {
          "type": "DocumentAssociation",
          "column": "crmacct_id",
          "inverse": "source",
          "sourceType": "CRMA",
          "isNested": true
        }
      },
      {
        "name":"comments",
        "toMany":{
          "isNested":true,
          "type":"AccountComment",
          "column":"crmacct_id",
          "inverse":"account"
        }
      },
      {
        "name":"characteristics",
        "toMany":{
          "isNested":true,
          "type":"AccountCharacteristic",
          "column":"crmacct_id",
          "inverse":"account"
        }
      }
    ],
    "isSystem":true
  },
  {
    "context":"xtuple",
    "nameSpace":"XM",
    "type":"AccountAddressListItem",
    "table":"xt.crmacctaddr",
    "isRest":true,
    "comment":"Account Address List Item Map",
    "privileges":{
      "all":{
        "create":false,
        "read":true,
        "update":false,
        "delete":false
      }
    },
    "properties":[
      {
        "name":"id",
        "attr":{
          "type":"Number",
          "column":"addr_id",
          "isPrimaryKey":true
        }
      },
      {
        "name":"number",
        "attr":{
          "type":"String",
          "column":"addr_number",
          "isNaturalKey":true
        }
      },
      {
        "name":"isActive",
        "attr":{
          "type":"Boolean",
          "column":"addr_active"
        }
      },
      {
        "name":"line1",
        "attr":{
          "type":"String",
          "column":"addr_line1"
        }
      },
      {
        "name":"line2",
        "attr":{
          "type":"String",
          "column":"addr_line2"
        }
      },
      {
        "name":"line3",
        "attr":{
          "type":"String",
          "column":"addr_line3"
        }
      },
      {
        "name":"city",
        "attr":{
          "type":"String",
          "column":"addr_city"
        }
      },
      {
        "name":"state",
        "attr":{
          "type":"String",
          "column":"addr_state"
        }
      },
      {
        "name":"postalCode",
        "attr":{
          "type":"String",
          "column":"addr_postalcode"
        }
      },
      {
        "name":"country",
        "attr":{
          "type":"String",
          "column":"addr_country"
        }
      },
      {
        "name":"account",
        "toOne": {
          "isNested": true,
          "type": "AccountRelation",
          "column": "crmacct_id"
        }
      }
    ],
    "isSystem":true
  },
  {
    "context":"xtuple",
    "nameSpace":"XM",
    "type":"AccountCharacteristic",
    "table":"charass",
    "idSequenceName": "charass_charass_id_seq",
    "comment":"Account Characteristic Map",
    "privileges":{
      "all":{
        "create":true,
        "read":true,
        "update":true,
        "delete":true
      }
    },
    "properties":[
      {
        "name":"id",
        "attr":{
          "type":"Number",
          "column":"charass_id",
          "isPrimaryKey":true
        }
      },
      {
        "name": "uuid",
        "attr": {
          "type": "String",
          "column": "obj_uuid",
          "isNaturalKey": true
        }
      },
      {
        "name":"targetType",
        "attr":{
          "type":"String",
          "column":"charass_target_type",
          "value":"CRMACCT"
        }
      },
      {
        "name":"account",
        "attr":{
          "type":"Number",
          "column":"charass_target_id"
        }
      },
      {
        "name":"characteristic",
        "toOne":{
          "type":"Characteristic",
          "column":"charass_char_id",
          "required":true
        }
      },
      {
        "name":"value",
        "attr":{
          "type":"String",
          "column":"charass_value"
        }
      }
    ],
    "isNestedOnly":true,
    "isSystem":true
  },
  {
    "context":"xtuple",
    "nameSpace":"XM",
    "type":"AccountListItemCharacteristic",
    "table":"charass",
    "comment":"Account List Item Characteristic Map",
    "privileges":{
      "all":{
        "create":true,
        "read":true,
        "update":true,
        "delete":true
      }
    },
    "properties":[
      {
        "name":"id",
        "attr":{
          "type":"Number",
          "column":"charass_id",
          "isPrimaryKey":true
        }
      },
      {
        "name": "uuid",
        "attr": {
          "type": "String",
          "column": "obj_uuid",
          "isNaturalKey": true
        }
      },
      {
        "name":"targetType",
        "attr":{
          "type":"String",
          "column":"charass_target_type",
          "value":"CRMACCT"
        }
      },
      {
        "name":"account",
        "attr":{
          "type":"Number",
          "column":"charass_target_id"
        }
      },
      {
        "name":"characteristic",
        "toOne":{
          "type":"Characteristic",
          "column":"charass_char_id",
          "required":true
        }
      },
      {
        "name":"value",
        "attr":{
          "type":"String",
          "column":"charass_value"
        }
      }
    ],
    "isNestedOnly":true,
    "isSystem":true
  },
  {
    "context":"xtuple",
    "nameSpace":"XM",
    "type":"AccountComment",
    "table":"xt.crmacctcomment",
    "idSequenceName": "comment_comment_id_seq",
    "comment":"Account Comment Map",
    "privileges":{
      "all":{
        "create":true,
        "read":true,
        "update":"EditOthersComments",
        "delete":false
      },
      "personal":{
        "update":"EditOwnComments",
        "properties":[
          "createdBy"
        ]
      }
    },
    "properties":[
      {
        "name":"id",
        "attr":{
          "type":"Number",
          "column":"comment_id",
          "isPrimaryKey":true
        }
      },
      {
        "name": "uuid",
        "attr": {
          "type": "String",
          "column": "obj_uuid",
          "isNaturalKey": true
        }
      },
      {
        "name":"account",
        "attr":{
          "type":"Number",
          "column":"comment_source_id"
        }
      },
      {
        "name":"commentType",
        "toOne":{
          "type":"CommentType",
          "column":"comment_cmnttype_id",
          "required":true
        }
      },
      {
        "name":"text",
        "attr":{
          "type":"String",
          "column":"comment_text"
        }
      },
      {
        "name":"isPublic",
        "attr":{
          "type":"Boolean",
          "column":"comment_public",
          "value": true
        }
      },
      {
        "name":"created",
        "attr":{
          "type":"Date",
          "column":"comment_date"
        }
      },
      {
        "name":"createdBy",
        "attr":{
          "type":"String",
          "column":"comment_user"
        }
      }
    ],
    "isNestedOnly":true,
    "isSystem":true
  },
  {
    "context":"xtuple",
    "nameSpace":"XM",
    "type":"AccountRelation",
    "table":"crmacct",
    "isRest":true,
    "comment":"Account Relation Map",
    "privileges":{
      "all":{
        "create":false,
        "read":"ViewAllCRMAccounts MaintainAllCRMAccounts",
        "update":false,
        "delete":false
      },
      "personal":{
        "create":false,
        "read":true,
        "update":false,
        "delete":false,
        "properties":[
          "owner.username",
          "number"
        ]
      }
    },
    "properties":[
      {
        "name":"id",
        "attr":{
          "type":"Number",
          "column":"crmacct_id",
          "isPrimaryKey":true
        }
      },
      {
        "name":"number",
        "attr":{
          "type":"String",
          "column":"crmacct_number",
          "isNaturalKey":true
        }
      },
      {
        "name":"name",
        "attr":{
          "type":"String",
          "column":"crmacct_name"
        }
      },
      {
        "name":"isActive",
        "attr":{
          "type":"Boolean",
          "column":"crmacct_active"
        }
      },
      {
        "name":"owner",
        "toOne":{
          "isNested":true,
          "type":"UserAccountRelation",
          "column":"crmacct_owner_username",
          "inverse":"username"
        }
      },
      {
        "name":"userAccount",
        "toOne":{
          "isNested":true,
          "type":"UserAccountRelation",
          "column":"crmacct_usr_username",
          "inverse":"username"
        }
      }
    ],
    "isSystem":true
  },
  {
    "context":"xtuple",
    "nameSpace":"XM",
    "type":"AccountListItem",
    "table":"crmacct",
    "isRest":true,
    "comment":"Account List Item Map",
    "privileges":{
      "all":{
        "create":false,
        "read":"ViewAllCRMAccounts MaintainAllCRMAccounts",
        "update":false,
        "delete":false
      },
      "personal":{
        "create":false,
        "read":true,
        "update":false,
        "delete":true,
        "properties":[
          "owner.username",
          "number"
        ]
      }
    },
    "properties":[
      {
        "name":"id",
        "attr":{
          "type":"Number",
          "column":"crmacct_id",
          "isPrimaryKey":true
        }
      },
      {
        "name":"number",
        "attr":{
          "type":"String",
          "column":"crmacct_number",
          "isNaturalKey":true
        }
      },
      {
        "name":"name",
        "attr":{
          "type":"String",
          "column":"crmacct_name"
        }
      },
      {
        "name":"isActive",
        "attr":{
          "type":"Boolean",
          "column":"crmacct_active"
        }
      },
      {
        "name":"primaryContact",
        "toOne":{
          "isNested":true,
          "type":"ContactRelation",
          "column":"crmacct_cntct_id_1",
          "inverse":"id"
        }
      },
      {
        "name":"owner",
        "toOne":{
          "isNested":true,
          "type":"UserAccountRelation",
          "column":"crmacct_owner_username",
          "inverse":"username"
        }
      },
      {
        "name":"characteristics",
        "toMany":{
          "isNested":true,
          "type":"AccountListItemCharacteristic",
          "column":"crmacct_id",
          "inverse":"account"
        }
      }
    ],
    "isSystem":true
  }
]
