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; }