database_models_User.js

const Sequelize = require('sequelize');
/**
 * @typedef User
 * @property {{type: Sequelize.TEXT, trim: true}}    observation                 - Observation générale de l'user.
 * @property {{type: Sequelize.STRING, trim: true}}  login                       - Login de l'user.
 * @property {{type: Sequelize.STRING, trim: true}}  password                    - Password de l'user.
 * @property {{type: Sequelize.STRING, trim: true}}  salt                        - Grain de sel pour crypter le mots de passe.
 * @property {Sequelize.BLOB}    pic                         - l'image de l'user
 * @property {{type: Sequelize.STRING, trim: true}}  picType                     - Type mine de l'image
 * @property {{type: Sequelize.STRING, trim: true}}  tmpAccessKey                - <span style="color:red"> N'est plus utiliser a vérifier et retirers </span>
 * @property {{type: Sequelize.STRING, trim: true}}  firstname                   - Le Prénom de l'user.
 * @property {{type: Sequelize.STRING, trim: true}}  lastname                    - Le Nom de famille de l'user.
 * @property {{type: Sequelize.STRING, trim: true}}  phone                       - Le numéro de télephone de l'user.
 * @property {{type: Sequelize.STRING, trim: true}}  type                        - Le type de l'user : Consultant || Admin || SuperAdmin
 * @memberof Myintranet.Database
 */
module.exports = {
    observation: {type: Sequelize.TEXT, trim: true},
    login: {
        type: Sequelize.STRING, trim: true,
        unique: 'EmailLoginUniqueIndex',
        validate: {
            isEmail: true,
            notEmpty: true
        }
    },
    password: {type: Sequelize.STRING, trim: true},
    salt: {type: Sequelize.STRING, trim: true},
    pic: Sequelize.BLOB('long'),
    picType: {type: Sequelize.STRING, trim: true},
    tmpAccessKey: {type: Sequelize.STRING, trim: true},
    firstname: {type: Sequelize.STRING, trim: true, capitalizeOnSpace: true},
    gender: {type: Sequelize.STRING, trim: true},
    lastname: {type: Sequelize.STRING, trim: true, capitalizeOnSpace: true},
    phone: {
        type: Sequelize.STRING,
        trim: true,
        unique: 'PhoneLoginUniqueIndex',
        validate: {
            notEmpty: true
        }
    },
    type: {
        type: Sequelize.STRING,
        trim: true,
        defaultValue: "Consultant"
    }
}