From 26b3bf1ad731fa9eec778e7b79bc6945a217d3e6 Mon Sep 17 00:00:00 2001 From: Yan Kasabutski Date: Tue, 13 May 2025 04:06:35 +0000 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20=C2=AB?= =?UTF-8?q?sk1/src/models=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sk1/src/models/Cart.js | 17 +++++++++++++++++ sk1/src/models/User.js | 19 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 sk1/src/models/Cart.js create mode 100644 sk1/src/models/User.js diff --git a/sk1/src/models/Cart.js b/sk1/src/models/Cart.js new file mode 100644 index 0000000..1df16aa --- /dev/null +++ b/sk1/src/models/Cart.js @@ -0,0 +1,17 @@ +const mongoose = require('mongoose'); + +const CartItemSchema = new mongoose.Schema({ + productId: { type: String, required: true }, + name: { type: String, required: true }, + price: { type: Number, required: true }, + img: { type: String, required: true }, + quantity: { type: Number, default: 1 } +}); + +const CartSchema = new mongoose.Schema({ + userId: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true }, + items: [CartItemSchema], + updatedAt: { type: Date, default: Date.now } +}); + +module.exports = mongoose.model('Cart', CartSchema); \ No newline at end of file diff --git a/sk1/src/models/User.js b/sk1/src/models/User.js new file mode 100644 index 0000000..50a40ba --- /dev/null +++ b/sk1/src/models/User.js @@ -0,0 +1,19 @@ +const mongoose = require('mongoose'); +const bcrypt = require('bcryptjs'); + +const UserSchema = new mongoose.Schema({ + firstName: { type: String, required: true }, + lastName: { type: String, required: true }, + email: { type: String, required: true, unique: true }, + password: { type: String, required: true }, + createdAt: { type: Date, default: Date.now } +}); + +UserSchema.pre('save', async function(next) { + if (this.isModified('password')) { + this.password = await bcrypt.hash(this.password, 10); + } + next(); +}); + +module.exports = mongoose.model('User', UserSchema); \ No newline at end of file