From ea5de580a8280ce45aea342c162531544e5a601e Mon Sep 17 00:00:00 2001 From: Joe Fleming Date: Thu, 26 Jan 2017 17:50:56 -0700 Subject: [PATCH] set up orders model and relationships --- common/models/customer.json | 8 +++++- common/models/order-products.js | 5 ++++ common/models/order-products.json | 41 +++++++++++++++++++++++++++++++ common/models/order.js | 5 ++++ common/models/order.json | 38 ++++++++++++++++++++++++++++ common/models/product.json | 9 ++++++- demodata.json | 6 +++-- server/model-config.json | 8 ++++++ 8 files changed, 116 insertions(+), 4 deletions(-) create mode 100644 common/models/order-products.js create mode 100644 common/models/order-products.json create mode 100644 common/models/order.js create mode 100644 common/models/order.json diff --git a/common/models/customer.json b/common/models/customer.json index a06cdf0..f0b3fbd 100644 --- a/common/models/customer.json +++ b/common/models/customer.json @@ -39,7 +39,13 @@ } }, "validations": [], - "relations": {}, + "relations": { + "orders": { + "type": "hasMany", + "model": "order", + "foreignKey": "customerId" + } + }, "acls": [], "methods": {} } diff --git a/common/models/order-products.js b/common/models/order-products.js new file mode 100644 index 0000000..654e1f9 --- /dev/null +++ b/common/models/order-products.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = function(Orderproducts) { + +}; diff --git a/common/models/order-products.json b/common/models/order-products.json new file mode 100644 index 0000000..c203547 --- /dev/null +++ b/common/models/order-products.json @@ -0,0 +1,41 @@ +{ + "name": "orderProducts", + "base": "PersistedModel", + "idInjection": true, + "options": { + "validateUpsert": true + }, + "properties": { + "id": { + "type": "string", + "required": true + }, + "quantity": { + "type": "number", + "required": true + }, + "price": { + "type": "number", + "required": true + }, + "totalPrice": { + "type": "number", + "required": true + } + }, + "validations": [], + "relations": { + "order": { + "type": "belongsTo", + "model": "order", + "foreignKey": "" + }, + "product": { + "type": "belongsTo", + "model": "product", + "foreignKey": "" + } + }, + "acls": [], + "methods": {} +} diff --git a/common/models/order.js b/common/models/order.js new file mode 100644 index 0000000..d38ab73 --- /dev/null +++ b/common/models/order.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = function(Order) { + +}; diff --git a/common/models/order.json b/common/models/order.json new file mode 100644 index 0000000..60d8e6a --- /dev/null +++ b/common/models/order.json @@ -0,0 +1,38 @@ +{ + "name": "order", + "plural": "orders", + "base": "PersistedModel", + "idInjection": true, + "options": { + "validateUpsert": true + }, + "properties": { + "id": { + "type": "string", + "required": true + }, + "total": { + "type": "number", + "required": true + }, + "datetime": { + "type": "date" + } + }, + "validations": [], + "relations": { + "customer": { + "type": "belongsTo", + "model": "customer", + "foreignKey": "" + }, + "products": { + "type": "hasMany", + "model": "product", + "foreignKey": "", + "through": "orderProducts" + } + }, + "acls": [], + "methods": {} +} diff --git a/common/models/product.json b/common/models/product.json index a9930bf..77aa82a 100644 --- a/common/models/product.json +++ b/common/models/product.json @@ -28,7 +28,14 @@ } }, "validations": [], - "relations": {}, + "relations": { + "orders": { + "type": "hasMany", + "model": "order", + "foreignKey": "", + "through": "orderProducts" + } + }, "acls": [], "methods": {} } diff --git a/demodata.json b/demodata.json index 0415ad4..8e9ac87 100644 --- a/demodata.json +++ b/demodata.json @@ -6,7 +6,8 @@ "RoleMapping": 1, "Role": 1, "customer": 1, - "product": 1 + "product": 1, + "order": 1 }, "models": { "User": {}, @@ -15,6 +16,7 @@ "RoleMapping": {}, "Role": {}, "customer": {}, - "product": {} + "product": {}, + "order": {} } } \ No newline at end of file diff --git a/server/model-config.json b/server/model-config.json index d7556e7..a5b5256 100644 --- a/server/model-config.json +++ b/server/model-config.json @@ -36,8 +36,16 @@ "dataSource": "db", "public": true }, + "order": { + "dataSource": "db", + "public": true + }, "product": { "dataSource": "db", "public": true + }, + "orderProducts": { + "dataSource": "db", + "public": false } }