-
Notifications
You must be signed in to change notification settings - Fork 0
/
db.js
95 lines (86 loc) · 1.98 KB
/
db.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
const Sequelize = require('sequelize')
const Op = Sequelize.Op
const db = new Sequelize({
dialect: 'sqlite', // mysql, postgres, mssql
storage: __dirname + '/ShoppingApp.db'
// database : '',
// host: 'localhost',
// username: '',
// password: '',
// port: ''
})
const Users = db.define('user',{
id:{
type: Sequelize.INTEGER,
autoIncreament: true,
primaryKey: true
},
name:{
type: Sequelize.STRING,
allowNull: false
},
})
const Vendors = db.define('vendor',{
id:{
type: Sequelize.INTEGER,
autoIncreament: true,
primaryKey: true
},
name:{
type: Sequelize.STRING,
allowNull: false
}
})
const Products = db.define('product',{
id:{
type: Sequelize.INTEGER,
autoIncreament: true,
primaryKey: true
},
productName:{
type: Sequelize.STRING,
allowNull: false
},
productPrice:{
type: Sequelize.STRING,
allowNull: false,
defaultValue:0.00
},
productQuantity:{
type: Sequelize.INTEGER,
allowNull: true,
defaultValue: 0
},
// vendorId:{
// type:Sequelize.STRING
// }
})
const Cart = db.define('cart',{
id:{
type: Sequelize.INTEGER,
autoIncreament: true,
primaryKey: true
},
userName:{
type: Sequelize.STRING
},
productQuantity:{
type: Sequelize.INTEGER
},
// productId:{
// type:Sequelize.INTEGER
// }
})
Products.belongsTo(Vendors, {onDelete:'cascade'});
Vendors.hasMany(Products, {onDelete:'cascade'});
Cart.belongsTo(Products, {onDelete:'cascade'});
// Cart.belongsTo(Users, {onDelete:'cascade'});
// Users.hasMany(Cart, {onDelete:'cascade'});
Products.hasMany(Cart, {onDelete:'cascade'});
//Vendors.hasMany(Products, { onDelete: 'cascade' });
db.sync()
.then(() => {
console.log('Database Created')})
exports = module.exports = {
db,Vendors,Products,Users,Cart
}