You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

78 lines
1.7 KiB

const { DataTypes } = require('sequelize');
const sequelize = require('../config/database');
module.exports = (sequelize) => {
const Client = sequelize.define('Client', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
nom: {
type: DataTypes.STRING(100),
allowNull: false,
validate: {
notEmpty: {
msg: 'Le nom est requis'
}
}
},
prenom: {
type: DataTypes.STRING(100),
allowNull: false,
validate: {
notEmpty: {
msg: 'Le prénom est requis'
}
}
},
email: {
type: DataTypes.STRING(255),
allowNull: true,
unique: true,
validate: {
isEmail: {
msg: 'Email invalide'
}
}
},
telephone: {
type: DataTypes.STRING(20),
allowNull: true,
validate: {
is: {
args: /^[0-9+\-\s]+$/,
msg: 'Numéro de téléphone invalide'
}
}
},
adresse: {
type: DataTypes.TEXT,
allowNull: true
},
date_naissance: {
type: DataTypes.DATEONLY,
allowNull: true
},
points_fidelite: {
type: DataTypes.INTEGER,
defaultValue: 0,
validate: {
min: {
args: [0],
msg: 'Les points de fidélité doivent être positifs'
}
}
},
actif: {
type: DataTypes.BOOLEAN,
defaultValue: true
}
}, {
tableName: 'clients',
timestamps: true,
createdAt: 'created_at',
updatedAt: 'updated_at'
});
return Client;
}