UNPKG

pawa-user

Version:

A user management service for Cosmo Pawa, handling authentication and authorization.

99 lines (95 loc) 2.03 kB
const { Model, DataTypes } = require('sequelize'); class User extends Model { } module.exports = (sequelize) => { User.init( { id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true, }, firstName: { type: DataTypes.STRING, allowNull: false, }, lastName: { type: DataTypes.STRING, allowNull: false, }, email: { type: DataTypes.STRING, allowNull: false, unique: true, validate: { isEmail: true, }, }, password: { type: DataTypes.STRING, allowNull: false, }, phoneNumber: { type: DataTypes.STRING, allowNull: true, }, address: { type: DataTypes.STRING, allowNull: true, }, city: { type: DataTypes.STRING, allowNull: true, }, state: { type: DataTypes.STRING, allowNull: true, }, zipCode: { type: DataTypes.STRING, allowNull: true, }, country: { type: DataTypes.STRING, allowNull: true, }, dateOfBirth: { type: DataTypes.DATEONLY, allowNull: true, }, gender: { type: DataTypes.ENUM("Male", "Female", "Other"), allowNull: true, }, profilePicture: { type: DataTypes.STRING, allowNull: true, }, role: { type: DataTypes.ENUM("user", "admin", "guest"), defaultValue: "user", }, isActive: { type: DataTypes.BOOLEAN, defaultValue: true, }, lastLogin: { type: DataTypes.DATE, allowNull: true, }, createdAt: { type: DataTypes.DATE, defaultValue: DataTypes.NOW, }, updatedAt: { type: DataTypes.DATE, defaultValue: DataTypes.NOW, }, }, { sequelize, modelName: 'User', tableName: 'users', } ); return User; };