Untitled
unknown
plain_text
a year ago
1.4 kB
10
Indexable
// src/sequelize/models/commande.model.js
import { Model, DataTypes } from 'sequelize';
import db from './index.js';
import User from './user.model.js';
class Commande extends Model {
calculateTotalPrice() {
return this.CommandeDetails.reduce((total, detail) => {
const price = detail.price * detail.quantity;
const discount = price * (detail.promotionValue / 100);
return total + (price - discount);
}, 0);
}
}
Commande.init({
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV7,
primaryKey: true
},
userId: {
type: DataTypes.UUID,
references: {
model: User,
key: 'id'
}
},
isPaid: {
type: DataTypes.BOOLEAN,
defaultValue: false
},
paymentFailedMessage: {
type: DataTypes.STRING,
allowNull: true
},
deliveryStatus: {
type: DataTypes.ENUM('processing', 'shipping', 'delivered', 'delivery_issue'),
defaultValue: 'processing'
},
createdAt: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: DataTypes.NOW
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: DataTypes.NOW
}
}, {
sequelize: db.sequelize,
modelName: 'Commande',
underscored: true
});
Commande.belongsTo(User);
User.hasMany(Commande);
export default Commande;Editor is loading...
Leave a Comment