2016-06-19 10:14:47 -07:00
|
|
|
export default function (sequelize, DataTypes) {
|
|
|
|
const User = sequelize.define('user', {
|
|
|
|
id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
|
|
|
|
email: DataTypes.STRING,
|
|
|
|
password: DataTypes.STRING,
|
2016-08-07 14:38:05 +01:00
|
|
|
name: DataTypes.STRING,
|
2016-06-19 10:14:47 -07:00
|
|
|
plan: DataTypes.ENUM('Free', 'Pro'), // eslint-disable-line new-cap
|
|
|
|
activated: DataTypes.BOOLEAN,
|
|
|
|
banned: DataTypes.BOOLEAN,
|
2016-08-07 14:38:05 +01:00
|
|
|
deletedAt: DataTypes.DATE,
|
2016-08-07 17:49:27 +01:00
|
|
|
mongoId: DataTypes.STRING,
|
2016-06-19 10:14:47 -07:00
|
|
|
}, {
|
2016-08-07 14:38:05 +01:00
|
|
|
paranoid: true,
|
2016-06-19 11:17:31 -07:00
|
|
|
indexes: [
|
|
|
|
{
|
|
|
|
fields: ['email'],
|
|
|
|
},
|
|
|
|
],
|
2016-06-19 10:14:47 -07:00
|
|
|
classMethods: {
|
|
|
|
associate: (models) => {
|
|
|
|
User.hasMany(models.file);
|
2016-08-07 14:38:05 +01:00
|
|
|
User.hasMany(models.transaction);
|
2016-06-19 10:14:47 -07:00
|
|
|
User.hasOne(models.activation);
|
|
|
|
},
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
return User;
|
|
|
|
}
|