Skip to content

Commit

Permalink
Merge pull request #2 from adnan-mujagic/adnan-mujagic/TECH-1-project…
Browse files Browse the repository at this point in the history
…-structure

Adding database models
  • Loading branch information
amarell authored Apr 19, 2022
2 parents fe3ed5d + d345b9c commit 5e693a1
Show file tree
Hide file tree
Showing 6 changed files with 119 additions and 1 deletion.
9 changes: 9 additions & 0 deletions models/categoryModel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
const mongoose = require("mongoose");

const categorySchema = mongoose.Schema({
name: String,
});

const Category = mongoose.model("Category", categorySchema);

module.exports = Category;
20 changes: 20 additions & 0 deletions models/orderModel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
const mongoose = require("mongoose");

const orderSchema = mongoose.Schema({
products: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "Product",
},
],
total: Number,
buyer: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
},
status: String,
});

const Order = mongoose.model("Order", orderSchema);

module.exports = Order;
34 changes: 34 additions & 0 deletions models/productModel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
const mongoose = require("mongoose");

const productSchema = mongoose.Schema({
name: String,
description: String,
images: [
{
type: String,
},
],
price: Number,
categories: {
type: mongoose.Schema.Types.ObjectId,
ref: "Category",
},
quantity: Number,
date_added: {
type: Date,
default: Date.now,
},
last_restocked: {
type: Date,
default: Date.now,
},
properties: [
{
type: Object,
},
],
});

const Product = mongoose.model("Product", productSchema);

module.exports = Product;
24 changes: 24 additions & 0 deletions models/reviewModel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
const mongoose = require("mongoose");

const reviewSchema = mongoose.Schema({
product: {
type: mongoose.Schema.Types.ObjectId,
ref: "Product",
},
user: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
},
rating: Number,
text: String,
likes: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "User",
},
],
});

const Review = mongoose.model("Review", reviewSchema);

module.exports = Review;
32 changes: 32 additions & 0 deletions models/userModel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
const mongoose = require("mongoose");

const userSchema = mongoose.Schema({
first_name: String,
last_name: String,
bio: {
type: String,
default: "",
},
username: String,
password: String,
email: String,
age: Number,
phone_number: String,
created_at: {
type: Date,
default: Date.now,
},
profile_picture: {
type: String,
default:
"https://cdn-icons.flaticon.com/png/512/1144/premium/1144709.png?token=exp=1648896007~hmac=8fec9c21f3c232dd89ccca64cf0dcc51",
},
role: {
type: String,
default: "NORMAL",
},
});

const User = mongoose.model("User", userSchema);

module.exports = User;
1 change: 0 additions & 1 deletion server.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ const app = express();
app.use(cors());

app.listen(port, () => {
console.log(process.env.DB_PATH);
console.log("Listening on port " + port);
});

Expand Down

0 comments on commit 5e693a1

Please sign in to comment.