|
@@ -1,7 +1,7 @@
|
|
|
const ObjectID = require("mongodb").ObjectID;
|
|
|
const {connect} = require('mm')
|
|
|
|
|
|
-module.exports = async (dbName='shop') => {
|
|
|
+module.exports = async (dbName='amazon2home') => {
|
|
|
const {Savable, slice} = await connect(dbName)
|
|
|
|
|
|
async function getModels({id}){
|
|
@@ -21,6 +21,7 @@ module.exports = async (dbName='shop') => {
|
|
|
static get relations(){ //don't needed due to ___owner in most cases
|
|
|
return {
|
|
|
avatar : "userAvatar",
|
|
|
+ executedOrders: "executor"
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -63,82 +64,56 @@ module.exports = async (dbName='shop') => {
|
|
|
static get relations(){
|
|
|
return {
|
|
|
userAvatar: "avatar", //if it is ava
|
|
|
- good: ["images"], //if it is ava
|
|
|
- category: "image", //if it is ava
|
|
|
+ order: ["images"]
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
SlicedSavable.addClass(Image)
|
|
|
|
|
|
- class Good extends SlicedSavable {
|
|
|
+ class Order extends OwnerSlicedSavable {
|
|
|
constructor(...params){
|
|
|
super(...params)
|
|
|
}
|
|
|
|
|
|
static get relations(){
|
|
|
return {
|
|
|
- categories: ["goods"],
|
|
|
- orderGoods: "good",
|
|
|
- images: "good"
|
|
|
+ executor: ["executedOrders"]
|
|
|
+ messages: "order"
|
|
|
+ comments: "order"
|
|
|
+ images: "order"
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- static get guestRelations(){
|
|
|
- return ["categories", "orderGoods"]
|
|
|
- }
|
|
|
}
|
|
|
- SlicedSavable.addClass(Good)
|
|
|
+ SlicedSavable.addClass(Order)
|
|
|
|
|
|
- class Category extends SlicedSavable {
|
|
|
+ class Message extends OwnerSlicedSavable {
|
|
|
constructor(...params){
|
|
|
super(...params)
|
|
|
}
|
|
|
|
|
|
static get relations(){
|
|
|
return {
|
|
|
- goods: ["categories"],
|
|
|
- image: "category",
|
|
|
+ order: ["messages"]
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- SlicedSavable.addClass(Category)
|
|
|
-
|
|
|
- class Order extends SlicedSavable {
|
|
|
- constructor(...params){
|
|
|
- super(...params)
|
|
|
- }
|
|
|
-
|
|
|
- get total(){
|
|
|
- return (async() => (await Promise.all(this.orderGoods)).reduce((a,b) => (a.total || a) + b.total, 0))()
|
|
|
- }
|
|
|
+ SlicedSavable.addClass(Message)
|
|
|
|
|
|
- static get relations(){
|
|
|
- return {
|
|
|
- user: ["orders"],
|
|
|
- orderGoods: "order"
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- SlicedSavable.addClass(Order)
|
|
|
|
|
|
- class OrderGood extends SlicedSavable {
|
|
|
+ class Comment extends OwnerSlicedSavable {
|
|
|
constructor(...params){
|
|
|
super(...params)
|
|
|
}
|
|
|
|
|
|
- get total(){
|
|
|
- return this.price*this.count
|
|
|
- }
|
|
|
-
|
|
|
static get relations(){
|
|
|
return {
|
|
|
- good: ["orderGoods"],
|
|
|
- order: ["orderGoods"]
|
|
|
+ order: ["comments"]
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- SlicedSavable.addClass(OrderGood)
|
|
|
+ SlicedSavable.addClass(Comment)
|
|
|
+
|
|
|
|
|
|
|
|
|
|