{
  "id": "tradle.Order",
  "title": "Order",
  "type": "tradle.Model",
  "subClassOf": "tradle.Form",
  "properties": {
    "dateSubmitted": {
      "type": "date",
      "set": "Date.now()",
      "readOnly": true
    },
    "number": {
      "type": "string",
      "readOnly": true
    },
    "description": {
      "type": "string",
      "displayName": true
    },
    "seller": {
      "type": "object",
      "readOnly": true,
      "ref": "tradle.Counterparty"
    },
    "buyer": {
      "type": "object",
      "ref": "tradle.Counterparty"
    },
    "contract": {
      "type": "object",
      "ref": "tradle.Contract",
      "readOnlyForClients": true
    },
    "totalPrice": {
      "type": "object",
      "ref": "tradle.Money",
      "readOnly": true,
      "displayName": true,
      "set": "items && items.map(a => a.listPrice ? a.listPrice.value : 0).reduce((a, b) => a + b, 0)"
    },
    "items": {
      "type": "array",
      "readOnlyForClients": true,
      "items": {
        "ref": "tradle.Product"
      }
    }
  },
  "required": [
    "items"
  ]
}

