74 lines
1.5 KiB
JavaScript
74 lines
1.5 KiB
JavaScript
const { DataTypes } = require("sequelize");
|
|
|
|
module.exports = (sequelize) => {
|
|
const User = sequelize.define(
|
|
"User",
|
|
{
|
|
id: {
|
|
type: DataTypes.UUID,
|
|
defaultValue: DataTypes.UUIDV4,
|
|
allowNull: false,
|
|
primaryKey: true,
|
|
},
|
|
firstName: {
|
|
type: DataTypes.STRING(100),
|
|
allowNull: false,
|
|
},
|
|
lastName: {
|
|
type: DataTypes.STRING(100),
|
|
allowNull: false,
|
|
},
|
|
email: {
|
|
type: DataTypes.STRING(69),
|
|
allowNull: false,
|
|
validate: {
|
|
isEmail: true,
|
|
},
|
|
},
|
|
phoneNumber: {
|
|
type: DataTypes.STRING(8),
|
|
allowNull: false,
|
|
validate: {
|
|
len: [8, 8],
|
|
},
|
|
},
|
|
password: {
|
|
type: DataTypes.STRING(100),
|
|
allowNull: false,
|
|
},
|
|
profilePicture: {
|
|
type: DataTypes.BLOB("long"),
|
|
allowNull: true,
|
|
},
|
|
townCouncil: {
|
|
type: DataTypes.STRING(30),
|
|
allowNull: false,
|
|
},
|
|
accountType: {
|
|
type: DataTypes.TINYINT(2),
|
|
allowNull: false,
|
|
defaultValue: 0,
|
|
},
|
|
isArchived: {
|
|
type: DataTypes.BOOLEAN,
|
|
allowNull: false,
|
|
defaultValue: false,
|
|
},
|
|
resetPasswordToken: {
|
|
type: DataTypes.STRING(64),
|
|
allowNull: true,
|
|
},
|
|
resetPasswordExpireTime: {
|
|
type: DataTypes.DATE,
|
|
allowNull: true,
|
|
},
|
|
},
|
|
{
|
|
tableName: "users",
|
|
timestamps: true,
|
|
}
|
|
);
|
|
|
|
return User;
|
|
};
|